
배열은 원시 자료형이 아닌 객체형에 속하기 때문에 객체처럼 동작한다.
const arr = [1, 2, 3];
console.log(typeof array); // object
const arr = new Array();
const arr = [];
const arr = ["강아지", "고양이", "다람쥐"];
arr[2] = "코끼리";
console.log(arr); // ["강아지", "고양이", "코끼리"]
const arr = [1, 2, 3];
arr[3] = 4;
arr.push(5);
console.log(arr); // [1, 2, 3, 4, 5]
const arr = [1, 2, 3, 4];
console.log(arr.pop()); // 4
console.log(arr); // [1, 2, 3]
console.log(arr.shift()); // 1
console.log(arr); // [2, 3]
const arr = ["강아지", "고양이", "다람쥐"];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]); // 강아지 고양이 다람쥐
}
for (let i in arr) {
console.log(i); // 0 1 2
}
for (let i of arr) {
console.log(i); // 강아지 고양이 다람쥐
}
arr.forEach(el => console.log(el)); // 강아지 고양이 다람쥐
정수 값을 받아, 배열에서 해당 값에 해당하는 인덱스의 요소 반환.
양수와 음수 모두 지정 가능, 음수 값의 경우 배열의 뒤에서부터 인덱싱.
const arr = [5, 12, 8, 130, 44];
console.log(arr[-1]); // undefined
console.log(arr.at(-1)); // 44
인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열 반환.
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = arr1.concat(arr2);
console.log(arr3); // [1, 2, 3, 4]
배열 안의 어떤 요소라도 주어진 판별 함수를 통과하는지 테스트 후 Boolean 값 반환.
빈 배열에서 호출하면 무조건 false 반환.
const arr = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0;
console.log(arr.some(even)); // true
배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트 후 Boolean 값 반환.
const arr1 = [1, 2, 3];
const isEven = (currentValue) => currentValue % 2 === 0;
console.log(arr1.every(isEven)); // false
const arr2 = [1, 3, 5];
console.log(arr2.every((curr) => curr % 2 !== 0)); // true
주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열 반환.
어떤 요소도 테스트를 통과하지 못했다면 빈 배열 반환.
const arr1 = [1, 2, 3, 4, 5, 6, 7];
const arr2 = arr1.filter((el) => el % 2 == 0);
const arr3 = arr1.filter((el) => el > 10);
console.log(arr2); // [2, 4, 6]
console.log(arr3); // []
주어진 판별 함수를 만족하는 첫 번째 요소의 값 반환.
만족하는 요소가 없다면 undefined 반환.
const arr1 = [1, 2, 3, 4];
const arr2 = arr1.find(el => el % 2 == 0);
console.log(arr2);
주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스 반환.
만족하는 요소가 없다면 -1 반환.
const arr1 = [1, 2, 3, 4];
const arr2 = arr1.findIndex(el => el % 2 == 0);
console.log(arr2); // 1
배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스 반환
존재하지 않다면 -1 반환
const arr1 = [1, 2, 3, 4];
const arr2 = arr1.indexOf(3);
console.log(arr2); // 2
배열이 특정 요소를 포함하고 있는지 판별.
const arr = [1, 2, 3];
console.log(arr.includes(4)); // false
console.log(arr.includes(1)); // true
배열의 모든 요소를 연결해 하나의 문자열로 만듦.
요소가 undefined 또는 null 이면 빈 문자열로 변환.
const arr = ["hi", "nice", "to", "meet", "you"];
console.log(arr.join(" ")); // hi nice to meet you
배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열 반환.
const arr1 = [1, 2, 3];
const arr2 = arr1.map(el => el * 2);
console.log(arr2); // [2, 4, 6]
유사 배열 객체나 반복 가능한 객체를 얕게 복사해 새로운 Array 객체를 만듦.
console.log(Array.from('hi')); // ['h', 'i']
console.log(Array.from([1,2,3], x => x * x)); // [1, 4, 9]
배열의 각 요소에 대해 주어진 reducer 함수를 실행하고, 하나의 결과값 반환.
const arr = [1, 3, 5];
const total = arr.reduce((acc, curr) => acc + curr, 0);
console.log(total); // 9
console.log(arr.reduce((acc, curr) => acc * curr, 1)); // 15
정렬한 배열 반환.
기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따름.
const arr1 = [2, 5, 3, 1, 9];
console.log(arr1.sort()); // [1,2,3,5,9]
console.log(arr1.sort((a, b) => b - a)); // [9,5,3,2,1]
const arr2 = ["q", "a", "d", "u", "w"];
console.log(arr2.sort()); // ["a","d","q","u","w"]
배열의 순서를 반전해 반환.
내림차순으로 정렬해주는 것이 아니라 단순 순서 반전.
// 내림차순 정렬
const arr1 = [2, 5, 3, 1, 9].sort((a, b) => b - a);
console.log(arr1); // [9,5,3,2,1]
// 단순 순서 반전
const arr2 = [2, 5, 3, 1, 9].reverse();
console.log(arr2); // [9,1,3,5,2]
어떤 배열의 시작점부터 끝점까지(끝점 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환.
원본 배열은 바뀌지 않음.
const arr1 = [1, 2, 3, 4, 5];
const arr2 = arr1.slice(2, 4);
console.log(arr1); // [1, 2, 3, 4, 5]
console.log(arr2); // [3, 4]
배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가해 배열의 내용 변경
const arr1 = [1, 2, 3, 4, 5];
arr1.splice(2, 1, 'hi');
console.log(arr1); // [1,2,"hi",4,5]
const arr2 = [1, 2, 3, 4];
arr2.splice(2, 0, 'hoho');
console.log(arr2); // [1,2,"hoho",3,4]
지정된 배열 및 그 요소를 나타내는 문자열 반환
const arr = [1, 2, 3, 4, 5];
console.log(arr.toString()); // "1,2,3,4,5"