
method(callbackFn, thisArg)
- 순회 메소드는 콜백함수를 인수로 전달받는다.
- 배열의 각 요소에 대해 제공된 콜백함수를 오름차순 인덱스 순서로 한 번씩 순회한다.
map()과의 차이점 : forEach()는 항상 undefined를 반환하므로 체이닝할 수 없다.let numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) => {
console.log(number * 10); // 10 20 30 40 50
});
let numbers = [1, 2, 3, 4, 5];
let result = numbers.map((number) => {
return number * 10;
});
console.log(result); // [10, 20, 30, 40, 50]
console.log(numbers); // [1, 2, 3, 4, 5]
true를 반환하는 모든 요소를 모아 새로운 배열 반환한다.let numbers = [1, 2, 3, 4, 5];
let result = numbers.filter((number) => {
return number < 3;
});
console.log(result); // [1, 2]
console.log(numbers); // [1, 2, 3, 4, 5]
누산기(acc)현재 값(cur)현재 인덱스(idx)원본 배열(src)아래의 예시는 리듀서 함수로 누산기(acc)와 현재 값(cur) 두 개의 인자를 갖는다.
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce((acc, cur) => {
return acc + cur;
});
console.log(sum); // 15
인덱스 오름차순 순으로 순회하면서 리듀서 함수 실행한다.
[index 0] acc = 0, cur = 1
[index 1] acc = 1, cur = 2
[index 2] acc = 3, cur = 3
[index 3] acc = 6, cur = 4
[index 4] acc = 10, cur = 5
return acc = 15
이번에는 리듀서 함수로 현재 인덱스 (idx) 값까지 3개의 인자를 갖는 경우이다.
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce((acc, cur, idx) => {
return acc + cur + idx;
});
console.log(sum); // 25
[index 0] acc = 0, cur = 1, idx = 0
[index 1] acc = 1, cur = 2, idx = 1
[index 2] acc = 4, cur = 3, idx = 2
[index 3] acc = 9, cur = 4, idx = 3
[index 4] acc = 16, cur = 5, idx = 4
return acc = 25
false를 리턴할 경우 false가 된다.some()과의 차이점 : every()의 경우 하나라도 false를 리턴할 경우 false를 반환, some()의 경우 각 요소들 중 하나라도 true를 리턴할 경우 true를 반환한다.let numbers = [1, 2, 3, 4, 5];
let result = numbers.every((number) => {
return number < 3;
});
console.log(result); // false
true를 리턴하면 값은 true가 된다let numbers = [1, 2, 3, 4, 5];
let result = numbers.some((number) => {
return number < 3;
});
console.log(result); // true
요소를 반환한다.undefined가 반환된다.let numbers = [1, 2, 3, 4, 5];
let result = numbers.find((number) => {
return number > 3;
});
console.log(result); // 4
result = numbers.find((number) => {
return number > 5;
});
console.log(result); // undefined
인덱스를 반환한다.-1을 반환한다.let numbers = [1, 2, 3, 4, 5];
let result = numbers.findIndex((number) => {
return number > 3;
});
console.log(result); // 3
result = numbers.findIndex((number) => {
return number > 5;
});
console.log(result); // -1
true 또는 false를 반환한다.let numbers = [1, 2, 3, 4, 5];
let result = numbers.includes(1);
console.log(result); // true
result = numbers.includes(6);
console.log(result); // false
인덱스를 반환하고, 찾을 수 없는 경우 -1을 반환한다.let numbers = [1, 2, 3, 4, 5];
let result = numbers.indexOf(3);
console.log(result); // 2
result = numbers.indexOf(6);
console.log(result); // -1
let numbers = [1, 2, 3, 4, 5];
let result = numbers.slice(0, 3);
console.log(result); // [1, 2, 3]
console.log(numbers); // [1, 2, 3, 4, 5]
result = numbers.slice(1, 2);
console.log(result); // [2]
console.log(numbers); // [1, 2, 3, 4, 5]
start, deleteCount(optional), item(optional)을 갖는다.start : 배열의 변경을 시작할 인덱스deleteCount : 배열에서 제거할 요소의 수item : 배열에 추가할 요소let numbers = [1, 2, 3, 4, 5];
let result = numbers.splice(0, 3);
console.log(result); // [1, 2, 3]
console.log(numbers); // [4, 5]
result = numbers.splice(1, 2, "추가", "또 추가");
console.log(result); // [2, 3]
console.log(numbers); // [1, '추가', '또 추가', 4, 5]
result = numbers.splice(2, 1, '하나만 추가');
console.log(result); // [3]
console.log(numbers); // [1, 2, '하나만 추가', 4, 5]
result = numbers.splice(0, 5);
console.log(result); // [1, 2, 3, 4, 5]
console.log(numbers); // []
result = numbers.splice();
console.log(result); // []
console.log(numbers); // [1, 2, 3, 4, 5]
let number1 = [1, 2, 3];
let number2 = [5, 10, 20];
let hello = 'world';
let result = number1.concat(number2, hello);;
console.log(result); // [1, 2, 3, 5, 10, 20, 'world']
let numbers = [1, 2, 3, 4, 5];
let result = numbers.fill('🍎');
console.log(result); // ['🍎', '🍎', '🍎', '🍎', '🍎']
console.log(numbers); // ['🍎', '🍎', '🍎', '🍎', '🍎']