
๐ ๋ฐฐ์ด ๋ฉ์๋ ์ค์๋ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ๋ ๋ฉ์๋(mutator method)์ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ์ฌ ๋ฐํํ๋ ๋ฉ์๋(accessor method)๊ฐ ์๋ค.
์๋ณธ ๋ฐฐ์ด์ ๋ณด์กดํ๊ธฐ ์ํด ๋๋๋ก์ด๋ฉด accessor method๋ฅผ ์ฌ์ฉํ์!
์ ๋ฌ๋ฐ์ ์ธ์๊ฐ ๋ฐฐ์ด์ด๋ฉด true, ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค
Array.isArray([1, 2]); // true
Array.isArray([]); // true
Array.isArray('1') // false
๋ฐฐ์ด์์ ์ธ์๋ก ์ ๋ฌ๋ 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์ด ์ ๋ฌ๋๋ค.
๋ฐฐ์ด์ ๋ชจ๋ 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]
๋ฐฐ์ด ๋ด์ ํน์ element๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด true, ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
const arr = [1, 2, 3];
arr.includes(2); // true
arr.includes(5); // false
arr.includes(1, 1) // false
// ๋ ๋ฒ์งธ ์ ๋ฌ์ธ์๋ก ๊ฒ์์ ์์ํ index์ ์ ๋ฌํ ์ ์๋ค. ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก 0์ด ์ ๋ฌ๋๋ค.
์ ๋ฌ๋ฐ์ ๋ชจ๋ ์ธ์๋ฅผ ์๋ณธ ๋ฐฐ์ด์ ๋ง์ง๋ง 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๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
์๋ณธ ๋ฐฐ์ด์์ ๋ง์ง๋ง element๋ฅผ ์ ๊ฑฐํ๊ณ ์ ๊ฑฐ๋ element๋ฅผ ๋ฐํํ๋ค.
const arr = [1, 2, 3, 4];
let result = arr.pop();
console.log(result); // 4
console.log(arr); // [1, 2, 3]
์ ๋ฌ๋ฐ์ ๋ชจ๋ ์ธ์๋ฅผ ์๋ณธ ๋ฐฐ์ด์ ์ฒ์ 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๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
์๋ณธ ๋ฐฐ์ด์์ ์ฒ์ element๋ฅผ ์ ๊ฑฐํ๊ณ ์ ๊ฑฐ๋ element๋ฅผ ๋ฐํํ๋ค.
const arr = [1, 2, 3, 4];
let result = arr.shift();
console.log(result); // 1
console.log(arr); // [2, 3, 4]
์๋ณธ ๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ๋๋ก ๋ค์ง๋๋ค. ๋ณ๊ฒฝ๋ ๋ฐฐ์ด์ด ๋ฐํ๋๋ค.
const arr = [1, 2, 3];
let result = arr.reverse();
console.log(result); // [3, 2, 1]
console.log(arr); // [3, 2, 1]
์ ๋ฌ๋ฐ์ ๋ชจ๋ ์ธ์๋ฅผ ๋ง์ง๋ง 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๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ง๊ด์ ์ด๊ณ ์ฑ๋ฅ๋ฉด์์ ์ข๋ค.
์ ๋ฌ๋ฐ์ ์ธ์์ ๋ฒ์์ 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]