๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/JavaScript

[JavaScript] ๋‹ค์–‘ํ•œ ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 18.
๋ฐ˜์‘ํ˜•

๐Ÿญ push

๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ๊ฐ’์„ ์‚ฝ์ž…ํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];
arr.push("e");
console.log(arr);  // ["a", "b", "c", "d", "e"]

 

๐Ÿญ pop

๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์˜ ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];
arr.pop();
console.log(arr);  // ["a", "b", "c"]

 

๐Ÿญ shift

๋ฐฐ์—ด ์•ž๋ถ€๋ถ„์˜ ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];
arr.shift();
console.log(arr);  // ["b", "c", "d"]

 

๐Ÿญ unshift

๋ฐฐ์—ด ์•ž๋ถ€๋ถ„์— ๊ฐ’์„ ์‚ฝ์ž…ํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];
arr.unshift("z");
console.log(arr);  // ["z", "a", "b", "c", "d"]

 

๐Ÿญ splice

๋ฐฐ์—ด์˜ ํŠน์ • ์œ„์น˜์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];
arr.splice(3, 1);  // 3๋ฒˆ์งธ ์ธ๋ฑ์Šค์—์„œ๋ถ€ํ„ฐ 1๊ฐœ ์ œ๊ฑฐ
console.log(arr);  // ["a", "b", "c"]

var arr = ["a", "b", "c", "d"];
arr.splice( 3, 1, "e", "f");  // 3๋ฒˆ์งธ ์ธ๋ฑ์Šค์—์„œ 1๊ฐœ ์ œ๊ฑฐ ํ›„ "e"์™€ "f" ์ถ”๊ฐ€
console.log(arr);  // ["a", "b", "c", "e", "f"]

 

๐Ÿญ slice

๋ฐฐ์—ด์˜ startIndex๋ถ€ํ„ฐ endIndex๊นŒ์ง€(endIndex๋Š” ํฌํ•จx)์— ๋Œ€ํ•œ ์–•์€ ๋ณต์‚ฌ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ฅ ์–•์€ ๋ณต์‚ฌ(Shallow Copy)๋ž€?
๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ์›๋ž˜ ๊ฐ’๊ณผ ๋ณต์‚ฌ๋œ ๊ฐ’์ด ๊ฐ™์€ ์ฐธ์กฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];
var newArr = arr.slice(); 
console.log(newArr);  // ["a", "b", "c", "d"]

 

๐Ÿญ concat

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ํ•ฉ์น˜๊ณ  ๋ณ‘ํ•ฉ๋œ ๋ฐฐ์—ด์˜ ์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var arr1 = ["a", "b", "c", "d"];
var arr2 = ["e", "f"];
var arr3 = arr1.concat(arr2); 
console.log(arr3);  //  ["a", "b", "c", "d", "e", "f"]

 

๐Ÿญ some

ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ(true)์ผ ๋•Œ๊นŒ์ง€ ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

var arr = ["a", "b", "c", "d"];

var isEven = function(value) {  // value๊ฐ€ "a"์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  return value == "a";
};
console.log(arr.some(isEven));  // true

 

๐Ÿญ every

๋ฐฐ์—ด์˜ ๊ฐ element์— ๋Œ€ํ•ด์„œ ํ…Œ์ŠคํŠธ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ๋ชจ๋‘ true์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ์ฆ‰, ๋ชจ๋“  case๊ฐ€ ์ฐธ์ผ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var arr = [{name: '์งฑ๊ตฌ', age: 10}, {name: '์งฑ์•„', age: 2}, {name: '๋งน๊ตฌ', age: 15}]

console.log(arr.every((item)=> item.age>10));  // false (๋ฐ”๋‘‘์ด ํƒˆ๋ฝ!)
console.log(arr.every((item)=> item.age>1));  // true

 

๐Ÿญ forEach

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด callback์„ ์‹คํ–‰ํ•œ๋‹ค.
(but, ์ค‘๊ฐ„์— break๋ฌธ ์‚ฌ์šฉ ๋ชปํ•จ)

var arr = ["a", "b", "c", "d"];

arr.forEach(function(value) {
    console.log(value);  // a, b, c, d
});

 

๐Ÿญ map

forEach์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Array์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ callback ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ ํ›„, callback์—์„œ return ๋˜๋Š” ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

var arr1 = ["a", "b", "c", "d"];

var isEven = function(value) {
  return value == "a";
};

var arr2 = arr1.map(isEven);
console.log(arr2);  // [true, false, false, false]

 

๐Ÿญ filter

callback ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ true๋กœ ๋งŒ๋“œ๋Š” ์›์†Œ๋“ค๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋ณ„๋„์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var arr1 = ["a", "b", "c", "d"];

var isEven = function(value) {
  return value == "a";
};

var arr2 = arr1.filter(isEven);
console.log(arr2);  // ["a"]

 

๐Ÿญ reduce

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด callback์„ ์‹คํ–‰ํ•˜๋ฉฐ ๋‹จ 1๊ฐœ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ ๋‹ค.

 

๐Ÿญ reverse

๋ฐฐ์—ด์˜ ์›์†Œ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋ฐ”๊พผ๋‹ค.

var arr = ["a", "b", "c", "d"];
arr.reverse();
console.log(arr);  // ["d", "c", "b", "a"]

 

๐Ÿญ sort

๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ, ๋˜๋Š” ์ง€์ •๋œ ํ•จ์ˆ˜์— ๋”ฐ๋ฅธ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ๋‹ค.
(๋ชจ๋“  ์›์†Œ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰ํ•ด ์‚ฌ์ „ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ๋‹ค)

var arr = ["b", "c", "a", "x", "f", "e", "y", "o"];
arr.sort();
console.log(arr);  // ["a", "b", "c", "e", "f", "o", "x", "y"]

 

๐Ÿญ toString

๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var arr = [1, 2, 3, 4];
console.log(arr.toString());  // 1, 2, 3, 4

 

๐Ÿญ valueOf

๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์›์‹œ ๋ฐ์ดํ„ฐํ˜•(primitive value)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var arr = [1, 2, 3, 4];
console.log(arr.valueOf());  // [1, 2, 3, 4]

 

๐Ÿญ join

๋ฐฐ์—ด ์›์†Œ ์ „๋ถ€๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์นœ๋‹ค.

var arr = [1, 2, 3, 4];
console.log(arr.join());  // 1, 2, 3, 4
console.log(arr.join('-'));  // 1-2-3-4
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€