카테고리 없음
map, filter, reduce, forEach
Hyunsoo_Kim
2023. 8. 24. 01:50
let arr=[1,2,3,4,5,6,7];
let arrTwo=arr.map(x=>{
if(x%2==0){
return x;
}
console.log(arrTwo); //[undefind,2,undefind,4,undefind,6,undefind]
map.
- 주어진 배열의 요소를 순회하며 요소마다 콜백함수를 실행하여 새로운 배열을 반환.
- 콜백함수의 첫번째 인자는 현재 순회하고 있는 요소, 두번째 인자는 현재 순회하고 있는 요소의 인덱스, 세번째 인자는 순회하고 있는 배열 자체.
- 콜백함수의 return값이 true이면 return값을 반환, return값이 false라면 undefind를 반환.
let arr=[1,2,3,4,5,6,7];
let arrTwo=arr.filter(x=>{
if(x%2==0){
return x;
}
})
console.log(arrtwo); //[2,4,6]
---------------------------------------------------------------------------------------------
const numberArray=[1,2,3,4,5,6];
const numberFilter=numberArray.filter(a=>a*a); //[1,2,3,4,5,6]
filter.
- 주어진 배열의 요소를 순회하며 콜백함수를 실행.
- 콜백함수의 return값이 true라면, return값이 아닌 현재 순회하고 있는 요소를 반환. return값이 false라면 undefind조차 반환하지 않고 생략.
const words=['Beachball','Rodeo','Angel','Aardvark',
'Xylophone','November','Chocolate','Papaya','Uniform',
'Joker','Clover','Bali'];
const alphabetical=words.reduce((a,x)=>{
if(!a[x[0]]){
a[x[0]]=[]
};
a[x[0]].push(x);
return a;
},{})
/* {
B: [ 'Beachball', 'Bali' ],
R: [ 'Rodeo' ],
A: [ 'Angel', 'Aardvark' ],
X: [ 'Xylophone' ],
N: [ 'November' ],
C: [ 'Chocolate', 'Clover' ],
P: [ 'Papaya' ],
U: [ 'Uniform' ],
J: [ 'Joker' ]
}
*/
reduce.
- 주어진 배열의 요소들을 순회하며 콜백함수를 실행.
- 콜백함수의 첫번째 인자는 누적값, 두번째 인자는 순회하고 있는 요소, 세번째 인자는 순회하고 있는 요소의 인덱스
- reduce의 두번째 인자는 초깃값. 초깃값을 설정하지 않으면 배열의 첫번째 요소를 누적값으로 가짐.
let arr=[1,2,3,4,5];
arr.map((a,n)=>{arr[n]=a*a;})
console.log(arr);
//[1, 4, 9, 16, 25]
forEach
- 주어진 배열의 요소들을 순회하며 콜백함수를 실행.
- 콜백함수의 첫번째 인자는 현재 순회하고있는 요소, 두번째 인자는 순회하고 있는 요소의 인덱스, 세번째 인자는 순회하고 배열 자체.
- 콜백함수의 return값은 무시되며, return값이 필요하지 않을때 사용하는 것을 권장.