Array

๋ฐฐ์—ด ์ƒ์„ฑ

๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด

var evens = [2, 4, 6, 8];

Array ์ƒ์„ฑ์ž

var evens = new Array(2, 4, 6, 8);
// [2, 4, 6, 8] ๋ฐฐ์—ด ์š”์†Œ ์ง€์ •
var evens = new Array(4);
// [undefined, undefined, undefined, undefined] ๋ฐฐ์—ด ํฌ๊ธฐ๋งŒ ์ง€์ •

๋ฐฐ์—ด ํŠน์ง•

  • ๊ธธ์ด๋‚˜ ์š”์†Œ์˜ ์ž๋ฃŒํ˜•์ด ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š๋‹ค. -> ๋ฐ€์ง‘์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค

  • ํƒ€์ž…์ด ์ง€์ •๋œ ๋ฐฐ์—ด์€ typed array๋ฅผ ์‚ฌ์šฉํ•˜์ž

length ํ”„๋กœํผํ‹ฐ (๋ฐฐ์—ด ๊ธธ์ด)

  • ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ์ธ๋ฑ์Šค๋ณด๋‹ค 1 ํฐ ๊ฐ’

  • ์‹ค์ œ ๋ฐฐ์—ด์˜ ์›์†Œ

  • ์ž„์˜๋กœ ๋Š˜๋ ค๋„ ์š”์†Œ์— ๋ณ€ํ™”๋Š” ์—†๋‹ค.

  • ์ž„์˜๋กœ ์ค„์ด๋ฉด ์š”์†Œ๊ฐ€ ์ง€์›Œ์ง„๋‹ค.

evens.length; // 4
var arr = [];
console.log(arr.length); // 0
arr[0] = 0;
arr[1] = 1;
console.log(arr.length); // 2
arr[50] = 50; // 51์ธ ์ด์œ  => arr[2]๋ถ€ํ„ฐ arr[49]๊นŒ์ง€ undefined ํ• ๋‹น
  • ๋ช…์‹œ์ ์œผ๋กœ Array.length๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ž์—์„œ ๋ถ€ํ„ฐ ์ž˜๋ฆผ

arr.length = 2;
console.log(arr); // [0, 1]

ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋ฏ€๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋ฐฐ์—ด ์›์†Œ๋Š” ์•„๋‹ˆ๋ฏ€๋กœ length์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค

arr.name = "array";
console.log(arr.name); // array

๋ฐฐ์—ด ์š”์†Œ ์ ‘๊ทผํ•˜๊ธฐ

evens[2] // 6
evens["2"] // 6

์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • push ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ -> ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€

  • unshift ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ -> ๋ฐฐ์—ด์˜ ์ฒ˜์Œ์— ์ถ”๊ฐ€

var a = ["B", "C","D"];
a.push("E");
a.unshift("A")
console.log(a); // ["A", "B", "C", "D", "E"]

์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ

  • delete ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

  • ์‚ญ์ œ๋œ ์ž๋ฆฌ์—๋Š” undefined

  • pop() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ -> ๋ฐฐ์—ด ๋งˆ์ง€๋ง‰ ์š”์†Œ ์‚ญ์ œ

  • shift() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ -> ๋ฐฐ์—ด ์ฒ˜์Œ ์š”์†Œ ์‚ญ์ œ

  • splice() ์‚ฌ์šฉ -> ์›๋ž˜ ๋ฐฐ์—ด์˜ ์‚ญ์ œ๋œ ์ž๋ฆฌ๋Š” ์‚ฌ๋ผ์ง,์š”์†Œ๊ฐ€ ์‚ญ์ œ๋œ ๋ฐฐ์—ด์ด ๋ฐ˜ํ™˜

var a = ["A", "B", "C","D","E"];
delete a[1]; // ["A", undefined, "C", "D", "E"]
a.pop(); // ["A", undefined, "C", "D"]
a.shift(); // [undefined, "C", "D"]
a.splice(0,1); // ["C", "D"]

๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๊ธฐ

arr = [1.2,3]
copiedArr = [...arr]

์ •์  ๋ฉ”์„œ๋“œ

Array.from() - ์–•์€ ๋ณต์‚ฌ๋กœ ๋ฐฐ์—ด ์ƒ์„ฑ

  • ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋‚˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์—์„œ ์–•์€ ๋ณต์‚ฌ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด Array ์ƒ์„ฑ

  Array.from(arrayLike[, mapFn[, thisArg]])
console.log(Array.from([1, 2, 3], x => x * 2)); // [2, 4, 6]
console.log(Array.from([1, 2, 3], x => x * 3)); // [3, 6, 9]

Array.isArray() - Array์ธ์ง€ ํ™•์ธ

  • Array์ด๋ฉด true๋ฅผ, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜

   Array.isArray([1, 2, 3]); // true
   Array.isArray('foo');   // false

Array.of() - Array ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

  • Array() ์ฒ˜๋Ÿผ Array๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ, ์ •์ˆ˜๊ฐ€ ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ์ •์ˆ˜๊ฐ€ ์š”์†Œ์ธ ๋ฐฐ์—ด์„ ์ƒ์„ฑ

  Array.of(element0[, element1[, ...[, elementN]]])
Array.of(5); // [5]
Array.of(1,2,3,4) // [1,2,3,4]
Array(5); // [,,,,]
Array(1,2,3,4) // [1,2,3,4]

์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ

Array.at() - ์ธ๋ฑ์Šค๋กœ ์š”์†Œ ์ฐพ์•„ ๋ฐ˜ํ™˜

  • ์ •์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„, ํ•ด๋‹น ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

at(index)
const arr = [10,20,30,40];
console.log(arr.at(2)) // 30
console.log(arr.at(-1)) // 40

Array.concat() - ๋ฐฐ์—ด์„ ํ•ฉ์ณ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜

  • ๋‘˜ ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ํ•ฉ์ณ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜

  • ๊ธฐ์กด ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

concat(value0, value1, /* โ€ฆ ,*/ valueN)
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// ["a", "b", "c", "d", "e", "f"]

Array.entries() - Iterator ์ƒ์„ฑ

  • ๋ฐฐ์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ํ‚ค/๊ฐ’ ์Œ์„ ๊ฐ€์ง€๋Š” iterator ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜

entries()
const array1 = ['a', 'b', 'c'];

const iterator1 = array1.entries(); // [object Array Iterator]
console.log(iterator1.next().value) // [0, "a"]
for (const [index, element] of array1.entries()) {
  console.log(index, element);
}
// 0 'a'
// 1 'b'
// 2 'c'
for (const element of arrayEntries) {
  console.log(element);
}

Array.every() - ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ฐธ์ธ์ง€ ํ™•์ธ

  • ๋ฐฐ์—ด ์•ˆ์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์— ๋Œ€ํ•ด true์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜

every((element, index, array) => { ... } )
arr = [0,1,2,3,4]
console.log(arr.every((element) => element < 5)) //true

Array.fill() - ๋‹จ์ผ ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์ฑ„์šฐ๊ธฐ

  • ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค์—์„œ ๋ ์ธ๋ฑ์Šค์˜ ์ด์ „๊นŒ์ง€ ์ •์ ์ธ ๊ฐ’ ํ•˜๋‚˜๋กœ ์ฑ„์šด๋‹ค.

  • ์›๋ณธ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋˜๊ณ , ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’๋„ ๋ณ€๊ฒฝ๋œ ๋ฐฐ์—ด์ด๋‹ค.

   arr.fill(value[, start[, end]])
arr = [1,2,3,4]

console.log(arr.fill(0)) // [0,0,0,0]
console.log(arr) // [0,0,0,0]
console.log(arr.fill(1,2,4)) // [0, 0, 1, 1]

Array.filter() - ์š”์†Œ๋ฅผ ๊ฑฐ๋ฅด๊ธฐ

  • ์ธ์ž๋กœ ๋ฐ›๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด true์ธ ์š”์†Œ ๋งŒ์„ ๋ชจ์•„ ์ƒˆ๋กœ์šด ์–•์€ ๋ณต์‚ฌ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜

Array.filter((element, index, array) => { /* โ€ฆ */ })
const words = [
    "spray",
    "limit",
    "elite",
    "exuberant",
    "destruction",
    "present",
];
const result = words.filter((word) => word[0] === "e");
console.log(result); [ "elite", "exuberant"]

Array.find() - ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋‹จ์ผ ์š”์†Œ์˜ ๊ฐ’ ์ฐพ๊ธฐ

  • ๋ฐฐ์—ด์—์„œ ํ…Œ์ŠคํŒ… ํ•จ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ฐพ์•„ ์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜

  • ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜

Array.find((element, index, array) => { /* โ€ฆ */ })
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element >100);

console.log(found); // 130

Array.findIndex() - ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋‹จ์ผ ์š”์†Œ์˜ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ

  • ๋ฐฐ์—ด์—์„œ ํ…Œ์ŠคํŒ… ํ•จ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ฐพ์•„ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜.

  • ์ฐพ๋Š” ์š”์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜

Array.findIndex((element, index, array) => { /* โ€ฆ */ })
const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array1.findIndex(isLargeNumber)); // 3

Array.flat() - ๋ฐฐ์—ด ํ‰ํƒ„ํ™”

  • ๋ชจ๋“  ํ•˜์œ„ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ง€์ •ํ•œ ๊นŠ์ด๊นŒ์ง€ ์žฌ๊ท€์ ์œผ๋กœ ์ด์–ด๋ถ™์ธ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜

  • depth์˜ ๊ธฐ๋ณธ ๊ฐ’์€ 1์ด๋‹ค.

  • ์š”์†Œ ๊ฐ’์ด ๋นˆ ๊ณณ์€ ์•Œ์•„์„œ ์‚ญ์ œํ•œ๋‹ค.

const newArr = arr.flat([depth])
arr = [[1,2,3],[4,5,6],[7,8,9]]

console.log(arr.flat(1)) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr = [[1,2,3],[4,,]]

console.log(arr.flat(1)) // [1, 2, 3, 4]

Array.forEach() - ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ์‹คํ–‰

  • ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์‹คํ–‰

  • ๋ฐ˜ํ™˜ ๊ฐ’์€ ํ•ญ์ƒ undefind์ด๋‹ค.

Array.forEach((element, index, array) => { /* โ€ฆ */ })
arr = [1,2,3]

arr.forEach((element,index) => console.log(index,element))
// 0 1
// 1 2
// 2 3

Array.includes() - ๋ฐฐ์—ด์˜ ์š”์†Œ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ

  • ๋ฐฐ์—ด์˜ ์š”์†Œ ์ค‘์—์„œ ์ฃผ์–ด์ง„ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false ๋ฐ˜ํ™˜

arr.includes(valueToFind[, fromIndex])
const array1 = [1, 2, 3];
console.log(array1.includes(2)); // true

Array.indexOf() - ํŠน์ • ์š”์†Œ์˜ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ

  • ๋ฐฐ์—ด์—์„œ ์ฃผ์–ด์ง„ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ฐพ์•„ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜

  • ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1 ๋ฐ˜ํ™˜

Array.indexOf(searchElement, fromIndex)
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison')); // 1

Array.join() - ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ถ™์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜

  • ๋ฐฐ์—ด ๋˜๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์—์„œ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ์ด์–ด ๋ถ™์—ฌ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

commas ๋˜๋Š” ํŠน์ • ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ์‚ฌ์šฉํ•œ๋‹ค

์š”์†Œ๊ฐ€ ํ•˜๋‚˜์ธ ๋ฐฐ์—ด์€ ๊ตฌ๋ถ„์ž ์—†์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

์š”์†Œ๊ฐ€ ์—†๋Š”(๋ฐฐ์—ด๊ธธ์ด 0) ๋ฐฐ์—ด์€ ๋นˆ ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

   arr.join([separator])
arr.join() // ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜๊ธฐ
arr.join("") // ๊ตฌ๋ถ„์ž ์—†์ด ์ด์–ด ๋ถ™์ด๊ธฐ
arr.join("/") // /๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ์‚ฌ์šฉํ•˜๊ธฐ
  • ๋นˆ ์š”์†Œ๋Š” underfined์™€ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜๊ณ , ๋˜‘๊ฐ™์ด ๊ตฌ๋ถ„์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

[1, , 3].join() // "1,,3"
[1, undefined, 3].join() // "1,,3"
  • ๋ฐฐ์—ด์ด ์•„๋‹Œ ๋…ผ ๋ฐฐ์—ด ๊ฐ์ฒด๋ผ๋„ length ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•˜์—ฌ join()์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

const arrayLike1 = { 0: 0, 1: 1, 2: 2 };
const arrayLike2 = { length: 3};
const arrayLike3 = { length: 3, 0: 0, 1: 1, 2: 2 };
console.log(Array.join.call(arrayLike1)); // 
console.log(Array.join.call(arrayLike2)); // ,,
console.log(Array.join.call(arrayLike3)); // 0,1,2

Array.keys() - ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค iterrator ๋ฐ˜ํ™˜

  • ๋ฐฐ์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค Iterator๋ฅผ ๋ฐ˜ํ™˜

arr.keys()
const arr = ['a', 'b', 'c'];

for (const key of arr.keys()) {
  console.log(key, arr[key]);
}
// 0 "a"
// 1 "b"
// 2 "c"

Array.lastIndexOf() - ๋ฐฐ์—ด์˜ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง„ ๋งˆ์ง€๋ง‰ ์š”์†Œ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜

  • ๋ฐฐ์—ด์—์„œ ์ฃผ์–ด์ง„ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์š”์†Œ ์ค‘ ๋งˆ์ง€๋ง‰ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜

  • ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜

  • ํƒ์ƒ‰์€ ์—ญ์ˆœ์œผ๋กœ ์ด๋ฃจ์–ด ์ง„๋‹ค. ์ฆ‰ ๋งจ ๋’ค์—์„œ ๋ถ€ํ„ฐ ๊ฒ€์‚ฌํ•˜์—ฌ ์ฃผ์–ด์ง„ ๊ฐ’์„ ๊ฐ€์ง„ ์š”์†Œ๊ฐ€ ์ฒ˜์Œ ๋‚˜์˜ฌ ๋•Œ ๊ทธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • fromIndex์˜ ๊ธฐ๋ณธ ๊ฐ’์€ array.length-1์ด๋‹ค.

arr.lastIndexOf(searchElement[, fromIndex])
var array = [2, 5, 9, 2];
array.lastIndexOf(2);     // 3
array.lastIndexOf(7);     // -1
array.lastIndexOf(2, 3);  // [2, 5, 9, 2]์—์„œ ํƒ์ƒ‰ -> 3
array.lastIndexOf(2, 2);  // [2, 5, 9]์—์„œ ํƒ์ƒ‰ -> 0
array.lastIndexOf(2, -2); // [2, 5, 9]์—์„œ ํƒ์ƒ‰ -> 0
array.lastIndexOf(2, -1); // [2, 5, 9, 2]์—์„œ ํƒ์ƒ‰ -> 3

Array.map() - ํ•จ์ˆ˜ ๋งคํ•‘ํ•˜์—ฌ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

  • ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„ ๊ฐ๊ฐ์˜ ์›์†Œ์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜

Array.map((element, index, array) => { /* โ€ฆ */ })
const arr = [1, 2, 3, 4, 5];
const square = arr.map((element) => element * element);
console.log(square); // 1 4 9 16 25

Array.pop() - ๋ฐฐ์—ด ๋งˆ์ง€๋ง‰ ์š”์†Œ ๊บผ๋‚ด์˜ค๊ธฐ

  • ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

  • ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐํ•œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋นˆ ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ undefined๋ฅผ ๋ฐ˜ํ™˜

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

Array.push() - ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

  • ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฐ”๋€ ๋ฐฐ์—ด์˜ length๋ฅผ ๋ฐ˜ํ™˜

  • ๋ฐ˜ํ™˜ ๊ฐ’์€ ๋ฐ”๋€ ๋ฐฐ์—ด์˜ ๊ธธ์ด์ด๋‹ค.

arr.push(element1[, ...[, elementN]])
var array = [1,2,3,4];
console.log(array.push(5,6)) // 6
console.log(array) // [1, 2, 3, 4, 5, 6]

Array.reduce() - ๊ฐ ์š”์†Œ์— ๋ฆฌ๋“€์„œ ํ•จ์ˆ˜ ์‹คํ–‰ํ•˜์—ฌ ๋‹จ์ผ ๊ฒฐ๊ณผ๊ฐ’ ๋ฐ˜ํ™˜

  • ๋ฆฌ๋“€์„œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด ์š”์†Œ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•˜์—ฌ

  • ๊ฐ ๋‹จ๊ณ„์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋’ค๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ˜ํ™˜

reduce((accumulator, currentValue, currentIndex, array) => { /* โ€ฆ */ }, initialValue)
const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce(
    (accumulator, currentValue) => accumulator + currentValue,
    0);

// accumulator + currentValue
// 		0 	   + 	1 => 1
// 		1 	   + 	2 => 3
// 		3 	   + 	3 => 6
// 		6 	   + 	4 => 10
// 		10 	   + 	5 => 15
console.log(sum); // 15

Array.reduceRight() - ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๊ฐ€๋Š” reduce()

  • ํ•จ์ˆ˜์˜ ๋™์ž‘ ๋ฐฉ์‹์€ ๊ฐ™์œผ๋ฉฐ, ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ˆœ์„œ๋งŒ ๋ฐ˜๋Œ€์ด๋‹ค.

Array.reverse() - ๋ฐฐ์—ด ์ˆœ์„œ ๋ฐ˜์ „

  • ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์–ด ์›๋ณธ ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋Œ€๋กœ ํ•˜๊ณ  ์›๋ณธ ๋ฐฐ์—ด์˜ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜

  • ์›๋ณธ ๋ฐฐ์—ด๋„ ๋ณ€๊ฒฝ๋œ๋‹ค.

a.reverse()
var array = [1,2,3,4];
console.log(array.reverse()) // [4, 3, 2, 1]
console.log(array) // [4, 3, 2, 1]

Array.shift() - ๋ฐฐ์—ด์˜ ์ฒซ ์š”์†Œ๋ฅผ ๊บผ๋‚ด์˜ค๊ธฐ

  • ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐ๋œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

  • ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐฐ์—ด์˜ ๊ธธ์ด๋„ ๋ณ€ํ•œ๋‹ค.

  • ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด undefined ๋ฐ˜ํ™˜

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

Array.slice() - ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ ๋ฐ˜ํ™˜

  • ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜

  • ์›๋ณธ ๋ฐฐ์—ด์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.

slice(start, end)
const arr = [1, 2, 3, 4, 5];
console.log(arr.slice(2,4)) // [3,4]

Array.some() - ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š”์ง€

  • ๋ฐฐ์—ด์˜ ์š”์†Œ ์ค‘ ํ•œ ์š”์†Œ๋ผ๋„ ํ…Œ์ŠคํŒ… ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜

  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false ๋ฐ˜ํ™˜

  • ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

some((element, index, array) => { /* โ€ฆ */ })
const array = [1, 2, 3, 4, 5];

// ์ง์ˆ˜๋ฅผ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜
const even = (element) => element % 2 === 0;

console.log(array.some(even)); // ๋ฐฐ์—ด์— ์ง์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
// true

Array.sort() - ๋ฐฐ์—ด์„ ์ •๋ ฌ

  • ์›๋ณธ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜์—ฌ ๋ฐ˜ํ™˜

  • ๊ธฐ๋ณธ ์ •๋ ฌ ์ˆœ์„œ๋Š” ๋ฌธ์ž์—ด์˜ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

  • ์›๋ž˜ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋œ๋‹ค.

  • compareFunction์ด ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ์š”์†Œ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์œ ๋‹ˆ ์ฝ”๋“œ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ์ˆซ์ž๋„ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์—, 2๋ณด๋‹ค 11์ด ๋จผ์ € ์˜จ๋‹ค.

arr.sort([compareFunction])
function compare(a, b) {
  if (a is less than b by some ordering criterion) {
    return -1;
  }
  if (a is greater than b by the ordering criterion) {
    return 1;
  }
  // a must be equal to b
  return 0;
}
// ์ˆซ์ž ํƒ€์ž… ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
arr.sort((a,b)=> a-b )
// ์ˆซ์ž ํƒ€์ž… ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
arr.sort((a,b)=> b-a)
var array = [3,2,5,1,4];
console.log(array.sort()) // [1, 2, 3, 4, 5]
console.log(array) // [1, 2, 3, 4, 5]

Array.splice() - ๋ฐฐ์—ด ์š”์†Œ ์กฐ์ž‘

  • ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ / ๋Œ€์ฒดํ•˜๊ฑฐ๋‚˜ / ์‚ญ์ œํ•œ ๋‹ค์Œ ์‚ญ์ œ๋œ ์š”์†Œ์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜

  • ์•„๋ฌด๊ฒƒ๋„ ์ œ๊ฑฐ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜

 array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
const arr = ['a','b','d'];

arr.splice(2,0,"c") // add "c" -> ["a", "b", "c", "d"]

arr.splice(0,1,"A") // replace 'a' to "A" -> ["A", "b", "c", "d"]

arr.splice(3,1) // remove 'd' -> ["A", "b", "c"]

Array.unshift() - ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋งจ ์•ž์— ์ถ”๊ฐ€

  • ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฐ”๋€ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜

  arr.toLocaleString([locales[, options]]);
const arr = [1, 2, 3];

console.log(arr.unshift(4, 5)); // 5
console.log(arr); // [4, 5, 1, 2, 3]

Last updated