Iterater는 배열의 모든 엘리먼트에 접근하고 조작할 수 있는 방법이다.
: 배열 속 모든 엘리먼트에 콜백 함수로부터 인수를 받아 동일한 코드를 실행시켜주는 메서드다.
function printGrocery(element){
console.log(element);
}
groceries.forEach(printGrocery);
배열이름
+ .forEach
+ (익명의 콜백 함수)
const groceries = ['1','2','4','5']
groceries.forEach(groceryEle => console.log(groceryEle));
: 두번째는 map이다. map은 새로운 배열을 반환한다.
const numbers = [1, 2, 3, 4, 5];
const bigNumbers = numbers.map(element => {
return element * 10;
});
console.log(numbers); // Output: [1, 2, 3, 4, 5]
console.log(bigNumbers); // Output: [10, 20, 30, 40, 50]
const bigNums = [1, 2, 3, 4, 5].map(el => el * 5);
: 세번째는 filter이다. 우리가 원하는 엘리먼트만 골라서 새로운 배열에 넣어줄 것이다.
콜백 함수에 전달된 요소가 True인 엘리먼트만 새로운 배열에 추가된다.
const words = ['chair', 'music', 'pillow', 'brick', 'pen', 'door'];
const shortWords = words.filter(word => {
return word.length < 6;
});
console.log(words); // Output: ['chair', 'music', 'pillow', 'brick', 'pen', 'door'];
console.log(shortWords); // Output: ['chair', 'music', 'brick', 'pen', 'door']
: 네번째는 findIndex이다. 말그대로 위치를 찾아주는 메서드다.
콜백 함수에서 True가 되는 엘리먼트의 첫번째 인덱스를 반환해준다.
const jumbledNums = [123, 25, 78, 5, 9];
const lessThanTen = jumbledNums.findIndex(num => {
return num < 10;
});
console.log(lessThanTen); // Output: 3
: 누적된 값을 반환시키는 메서드이다.
callback
, 최초값
): 누산기 (accumulator) : 콜백의 반환값을 누적, 이전 반복에서의 리턴 값
: 현재 값 (currentValue) : 현재 엘리먼트 값
: 현재 인덱스 (currentIndex) : 현재 엘리먼트의 인덱스
: callback의 최초 호출에서 첫 번째 인수에 제공하는 값.
const numbers = [1, 2, 4, 10];
const summedNums = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue
})
console.log(summedNums) // Output: 17