Array Method

henuยท2022๋…„ 12์›” 30์ผ
post-thumbnail

Array Method


๐Ÿ“Œ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ ์ค‘์—๋Š” ์›๋ณธ ๋ฐฐ์—ด์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์„œ๋“œ(mutator method)์™€ ์›๋ณธ ๋ฐฐ์—ด์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ(accessor method)๊ฐ€ ์žˆ๋‹ค.
์›๋ณธ ๋ฐฐ์—ด์„ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ๋˜๋„๋ก์ด๋ฉด accessor method๋ฅผ ์‚ฌ์šฉํ•˜์ž!

Array.isArray

์ „๋‹ฌ๋ฐ›์€ ์ธ์ž๊ฐ€ ๋ฐฐ์—ด์ด๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค

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

Array.prototype.indexOf

๋ฐฐ์—ด์—์„œ ์ธ์ž๋กœ ์ „๋‹ฌ๋œ element๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2, 2, 4, 5];

arr.indexOf(1); // 0

arr.indexOf(7); // -1
// ์ธ์ž๋กœ ์ „๋‹ฌ๋œ element๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

arr.indexOf(2); // 1
// ์ธ์ž๋กœ ์ „๋‹ฌ๋œ element์™€ ๋™์ผํ•œ element๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์ž‘์€ index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

arr.indexOf(2, 2) // 2
// ๋‘ ๋ฒˆ์งธ ์ „๋‹ฌ์ธ์ž๋กœ ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•  index์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 0์ด ์ „๋‹ฌ๋œ๋‹ค.

Array.prototype.join

๋ฐฐ์—ด์˜ ๋ชจ๋“  element๋ฅผ string์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ์ „๋‹ฌ์ธ์ž, ์ฆ‰ ๊ตฌ๋ถ„์ž๋กœ ์—ฐ๊ฒฐ๋œ string์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2, 3, 4, 5];

arr.join(); // '1,2,3,4,5'
// ๊ธฐ๋ณธ ๊ตฌ๋ถ„์ž(,)๋กœ ์—ฐ๊ฒฐ๋œ string์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

arr.join('') // '12345'
// ''๋กœ ์—ฐ๊ฒฐ๋œ string์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

arr.join(6) // '162636465'
// '6'์œผ๋กœ ์—ฐ๊ฒฐ๋œ string์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

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

Array.prototype.includes

๋ฐฐ์—ด ๋‚ด์— ํŠน์ • element๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2, 3];

arr.includes(2); // true

arr.includes(5); // false

arr.includes(1, 1) // false
// ๋‘ ๋ฒˆ์งธ ์ „๋‹ฌ์ธ์ž๋กœ ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•  index์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 0์ด ์ „๋‹ฌ๋œ๋‹ค.

Mutator Method


Array.prototype.push

์ „๋‹ฌ๋ฐ›์€ ๋ชจ๋“  ์ธ์ž๋ฅผ ์›๋ณธ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ element๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  length property ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2];

let result = arr.push(3, 4);

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

โš ๏ธ push ๋ฉ”์„œ๋“œ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด๋ผ์„œ ์„ฑ๋Šฅ๋ฉด์—์„œ ์ข‹์ง€ ์•Š๊ณ  ์›๋ณธ ๋ฐฐ์—ด์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์— Spread Syntax๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Array.prototype.pop

์›๋ณธ ๋ฐฐ์—ด์—์„œ ๋งˆ์ง€๋ง‰ element๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ œ๊ฑฐ๋œ element๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2, 3, 4];

let result = arr.pop();

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

Array.prototype.unshift

์ „๋‹ฌ๋ฐ›์€ ๋ชจ๋“  ์ธ์ž๋ฅผ ์›๋ณธ ๋ฐฐ์—ด์˜ ์ฒ˜์Œ element๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  length property ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2];

let result = arr.unshift(3, 4);

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

โš ๏ธ unshift ๋ฉ”์„œ๋“œ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด๋ผ์„œ ์„ฑ๋Šฅ๋ฉด์—์„œ ์ข‹์ง€ ์•Š๊ณ  ์›๋ณธ ๋ฐฐ์—ด์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์— Spread Syntax๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Array.prototype.shift

์›๋ณธ ๋ฐฐ์—ด์—์„œ ์ฒ˜์Œ element๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ œ๊ฑฐ๋œ element๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2, 3, 4];

let result = arr.shift();

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

Array.prototype.reverse

์›๋ณธ ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋’ค์ง‘๋Š”๋‹ค. ๋ณ€๊ฒฝ๋œ ๋ฐฐ์—ด์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

const arr = [1, 2, 3];

let result = arr.reverse();

console.log(result); // [3, 2, 1]
console.log(arr); // [3, 2, 1]

Accessor Method


Array.prototype.concat

์ „๋‹ฌ๋ฐ›์€ ๋ชจ๋“  ์ธ์ž๋ฅผ ๋งˆ์ง€๋ง‰ element๋กœ ์ถ”๊ฐ€ํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์ „๋‹ฌ์ธ์ž๊ฐ€ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ ๋ฐฐ์—ด์„ ํ•ด์ฒดํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr1 = [1, 2];
const arr2 = [3, 4];

let result = arr1.concat(3, 4);
console.log(result); // [1, 2, 3, 4];

result = arr1.concat(arr2);
console.log(result); // [1, 2, 3, 4];

result = arr1.concat(arr2, 5);
console.log(result); // [1, 2, 3, 4, 5];

console.log(arr1); // [1, 2];

โš ๏ธ unshift, push, concat๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค Spread Syntax๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ง๊ด€์ ์ด๊ณ  ์„ฑ๋Šฅ๋ฉด์—์„œ ์ข‹๋‹ค.

Array.prototype.slice

์ „๋‹ฌ๋ฐ›์€ ์ธ์ž์˜ ๋ฒ”์œ„์˜ elements๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const arr = [1, 2, 3, 4, 5];

arr.slice(1, 3); // [2, 3]
// start index๋ถ€ํ„ฐ end-1 index๊นŒ์ง€์˜ elements๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

arr.slice(1); // [2, 3, 4, 5]
// ๋‘ ๋ฒˆ์งธ ์ „๋‹ฌ์ธ์ž๋ฅผ ์ƒ๋žตํ•˜๋ฉด length property ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋œ๋‹ค.

arr.slice(-2); // [4, 5]
// ์ „๋‹ฌ์ธ์ž๊ฐ€ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ์˜ index๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

arr.slice(-3, -1); // [3, 4]

arr.slice(); // [1, 2, 3, 4, 5]
// ์ „๋‹ฌ์ธ์ž๋ฅผ ๋ชจ๋‘ ์ƒ๋žตํ•˜๋ฉด ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

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

0๊ฐœ์˜ ๋Œ“๊ธ€