.length
배열의 길이(숫자를 반환)
const arr = ["A", "B", "C"];
console.log(arr.length); // 3
.at()
대상 배열을 인덱싱
const arr = ["A", "B", "C"];
console.log(arr[0]); // "A"
console.log(arr.at(0)); // "A"
console.log(arr[arr.length - 1]); // "C"
console.log(arr.at(-1)); // "C"
.concat()
대상 배열과 주어진 배열을 병합해 새로운 배열을 반환
const arr1 = ["A", "B", "C"];
const arr2 = ["D", "E", "F"];
const arr3 = arr1.concat(arr2); // ["A", "B", "C", "D", "E", "F"]
// 전개연산자를 이용하여 배열 병합
// const arr3 = [...arr1, ...arr2]; // ["A", "B", "C", "D", "E", "F"]
console.log(arr1);
console.log(arr2);
console.log(arr3);
.every()
대상 배열의 모든 요소가 콜백 테스트에서 참(Truthy)을 반환하는지 확인
const arr = [1, 2, 3, 4];
const isValid = arr.every((item) => {
return item < 5;
});
console.log(isValid); // true
const isValid2 = arr.every((item) => {
return item < 4;
});
console.log(isValid2); // false
.filter()
주어진 콜백 테스트를 통과(참(Truthy)을 반환)하는 모든 요소를 새로운 배열로 반환
const numbers = [1, 20, 7, 9, 194, 0, 58];
const filteredNumbers = numbers.filter((number) => number < 30);
console.log(filteredNumbers); // [1, 20, 7, 9, 0]
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
const adults = users.filter((user) => user.age >= 19);
console.log(adults); // [{ name: "Neo", age: 85 }, { name: "Amy", age: 22 }]
.find()
대상 배열에서 콜백 테스트를 통과하는 첫 번째 요소 반환
const arr = [5, 8, 130, 12, 44];
const foundItem = arr.find((item) => item > 10);
console.log(foundItem); // 130
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
const foundUser = users.find((user) => user.name === "Amy");
console.log(foundUser); // { name: "Amy", age: 22 }
.findIndex()
대상 배열에서 콜백 테스트를 통과하는 첫 번째 요소의 인덱스 반환
const arr = [5, 8, 130, 12, 44];
const index = arr.findIndex((itme) => item > 10);
console.log(index); // 2
.flat()
대상 배열의 모든 하위 배열을 지정한 깊이(Depth)까지 이어붙인 새로운 배열 생성
arr.flat(Infinity)
: 모든 하위 배열을 이어붙임const arr = [1, 2, [3, 4]];
console.log(arr.flat()); // [1,2,3,4]
const arr = [1, 2, [3, 4, [5, 6]]];
console.log(arr.flat()); // [1,2,3,4,[5,6]]
console.log(arr.flat(2)); // [1,2,3,4,5,6]
console.log(arr.flat(Infinity)); // [1,2,3,4,5,6]
.forEach()
대상 배열의 길이만큼 주어진 콜백을 실행
💡 forEach와 for의 차이점
forEach는 break, continue, return을 사용할 수 없음
for는 break, continue, return을 사용할 수 있음
const arr = ["A", "B", "C"];
arr.forEach((item) => console.log(item)); // "A" "B" "C"
for (let i = 0; i < arr.length; i += 1) {
console.log(arr[i]); // "A" "B" "C"
}
.includes()
대상 배열이 특정 요소를 포함하고 있는지 확인
const arr = [1, 2, 3];
console.log(arr.includes(2)); // true
console.log(arr.includes(4)); // false
const fruits = ["apple", "banana", "orange"];
console.log(fruits.includes("apple")); // true
console.log(fruits.includes("Orange")); // false
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
console.log(users.includes({ name: "Neo", age: 85 })); // false
const neo = users[0];
console.log(users.includes(neo)); // true
.join()
대상 배열의 모든 요소를 구분자로 연결한 문자를 반환
const arr = ["Apple", "Banana", "Cherry"];
console.log(arr.join()); // "Apple,Banana,Cherry"
console.log(arr.join(", ")); // "Apple, Banana, Cherry"
console.log(arr.join("/")); // "Apple/Banana/Cherry"
.map()
대상 배열의 길이만큼 주어진 콜백을 실행하고, 콜백의 반환 값을 모아 새로운 배열을 반환
const numbers = [1, 2, 3, 4];
const newNumbers = numbers.map((item) => item * 2);
console.log(newNumbers); // [2, 4, 6, 8]
console.log(numbers); // [1, 2, 3, 4]
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
const newUsers = users.map((user) => {
return {
...user,
isValid: true,
email: null,
};
});
console.log(newUsers);
// [{ name: "Neo", age: 85, isValid: true, email: null },
// { name: "Amy", age: 22, isValid: true, email: null },
// { name: "Lewis", age: 11, isValid: true, email: null }]
.pop()
대상 배열에서 마지막 요소를 제거하고 그 요소를 반환
const fruits = ["Apple", "Banana", "Cherry"];
console.log(fruits.pop()); // "Cherry"
console.log(fruits); // ["Apple", "Banana"]
.push()
대상 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환
const fruits = ["Apple", "Banana", "Cherry"];
const newLength = fruits.push("Orange");
console.log(newLength); // 4
console.log(fruits); // ["Apple", "Banana", "Cherry", "Orange"]
fruits.push("Mango", "Strawberry");
console.log(fruits); // ["Apple", "Banana", "Cherry", "Orange", "Mango", "Strawberry"]
.reduce()
대상 배열의 길이만큼 주어진 콜백을 실행하고, 마지막에 호출되는 콜백의 반환 값을 반환
const numbers = [1, 2, 3];
const sum = numbers.reduce((accumulator, currentValue) => {
return (accumulator = currentValue);
}, 0);
console.log(sum); // 6
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
// 총 나이 계산
const totalAge = users.reduce((acc, cur) => {
return acc + cur.age;
}, 0);
console.log(totalAge); // 118
// 모든 이름 추출
const namesArray = users.reduce((acc, cur) => {
acc.push(cur.name);
return acc;
}, []);
const names = namesArray.join(", ");
console.log(names); // "Neo, Amy, Lewis"
.reverse()
대상 배열의 순서를 반전
const arr = ["A", "B", "C"];
const reversedArr = arr.reverse();
console.log(reversedArr); // ["C", "B", "A"]
console.log(arr); // ["C", "B", "A"]
.shift()
대상 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환
const arr = ["A", "B", "C"];
console.log(arr.shift()); // "A"
console.log(arr); // ["B", "C"]
.slice()
대상 배열의 일부를 추출해 새로운 배열을 반환
const arr = ["A", "B", "C", "D", "E", "F", "G"];
console.log(arr.slice(0, 3)); // ["A", "B", "C"]
console.log(arr.slice(4, -1)); // ["E", "F"]
console.log(arr.slice(4)); // ["E", "F", "G"]
console.log(arr); // ["A", "B", "C", "D", "E", "F", "G"]
.some()
대상 배열의 어떤 요소라도 콜백 테스트를 통과하는지 확인
const arr = [1, 2, 3, 4];
const isValid = arr.some((item) => item > 3);
console.log(isValid); // true
const isValid2 = arr.some((item) => item > 5);
console.log(isValid2); // false
.sort()
대상 배열을 콜백의 반환 값(음수, 양수, 0)에 따라 정의
const numbers = [4, 17, 2, 103, 3, 1, 0];
numbers.sort();
console.log(numbers); // [0, 1, 103, 17, 2, 3, 4]
// 오름차순
numbers.sort((a, b) => a - b);
console.log(numbers); // [0, 1, 2, 3, 4, 17, 103]
// 내림차순
number.sort((a, b) => b - a);
console.log(numbers); // [103, 17, 4, 3, 2, 1, 0]
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
users.sort((a, b) => a.age - b.age);
console.log(users); // [{ name: "Lewis", age: 11 }, { name: "Amy", age: 22 }, { name: "Neo", age: 85 }]
.splice()
대상 배열에 요소를 추가하거나 삭제하거나 교체
splice(시작 인덱스, 삭제할 요소 수, 추가할 요소)
const arr = ["A", "B", "C"];
arr.splice(2, 0, "X");
console.log(arr); // ["A", "B", "X", "C"]
const arr2 = ["A", "B", "C"];
arr.splice(1, 2);
console.log(arr); // ["A"]
.unshift()
새로운 요소를 대상 배열의 맨 앞에 추가하고, 새로운 배열의 길이 반환
const arr = ["A", "B", "C"];
console.log(arr.unshift("X")); // 4
console.log(arr); // ["X", "A", "B", "C"]
Array.from()
유사 배열(Array-like)을 실제 배열로 반환하는 정적 메서드
const arraylike = {
0: "A",
1: "B",
2: "C",
length: 3,
};
console.log(arraylike.constructor === Array); // false
console.log(arraylike.constructor === Object); // true
arraylike.forEach(item=>console.log(item)); // TypeError: arraylike.forEach is not a function
Array.from(arraylike).forEach((item) => console.log(item)); // "A" "B" "C"
Array.isArray()
배열 데이터인지 확인하는 정적메서드
const arr = ["A", "B", "C"];
const arraylike = {
0: "A",
1: "B",
2: "C",
length: 3,
};
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(arraylike)); // false