카테고리 없음

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값이 필요하지 않을때 사용하는 것을 권장.