*필터는 배열의 요소에서 조건을 만족하는 요소들을 배열로 반환해주는 메소드이다.
*조건이 참인 요소들만 배열로 구성되어 반환된다.
*원본 배열이 손상되지는 않는다.
const array = [1,2,3,4,5,6,7,8,9,10];
const array1 = array.filter((i)=>( i > 5 ));
console.log(array1) // [6,7,8,9,10]
const array = [1,2,3,4,5,6,7,8,9,10];
const array1 = array.filter((i)=>{
const a = i * 2;
return a < 10;
});
console.log(array1) // [1,2,3,4]
*배열의 요소들을 1개씩 뽑아서 작업을 처리하고 원하는 요소로 반환을 해서 새로운 배열을 만드는 방법이다.
*자바스크립트에서 매우 자주 사용하는 메소드이다.
*원본 배열은 손상되지 않는다.
const array = [1,2,3,4,5,6,7,8,9,10];
const array1 = array.map((i,index) => (
i * 2
))
console.log(array1) // [2,4,6,8 ... 20];
const array = [1,2,3,4,5,6,7,8,9,10];
array.map((i,index) => {
i = i+3
return i
})
console.log(array1) // [4,5,6,7,8 ... 13];
const array = [1,2,3,4,5,6,7,8,9,10];
const array1 = array.filter((i)=> i % 2 === 0).map((i,index) => {
i = i*2
return i
})
console.log(array1) // [4,8,12,16,20];
*배열에서 합계를 구할때 자주 사용하는 메소드이다. reduce또한 map과 같이 자바스크립트에서 자주 사용되는 메소드이다.
*반환값으로 합계값을 반환한다.
*acc는 반환할 합계 변수이고, cur은 현재 요소, index는 배열에서 요소가 위치한 인덱스이다.
*reduce는 초깃값을 지정해주지 않게 되면 배열의 첫번째 요소를 초깃값을 가지고 있는 특성이 존재한다.
const array = [1,2,3,4,5];
// (acc+cur) 은 acc = (acc+cur)과 같다, (),0 에서 뒤에 0이 초깂값이다.
const sum = array.reduce((acc,cur,index) => (acc+cur),0);
console.log(sum) // 15
const array = [1,2,3,4,5];
// 초깃값은 1이고 2번째 요소인 2부터 시작한다.
const sum = array.reduce((acc,cur,index) => {
cur = cur * 2;
return acc + cur
});
console.log(sum) // 1 + 2*2 + 3*2 + 4*2 + 5*2 = 1+4+6+8+10 = 29
*map,filter,reduce보다는 덜 사용되지만 유용한 메소드이다.
*단 1개라도 false이면 false이고 전부 true여야 true이다
배열.every(함수)
배열.every((i)=>i==="a")
배열.every({return })
배열.every((i)=>{
i = i + 3;
return i % 2 === 0;
})
const array = [1,2,3,4,5];
console.log(array.every((i)=>i<5)); // false
console.log(array.every((i)=>i<6)); // true
*map,filter,reduce보다는 덜 사용되지만 유용한 메소드이다.
*단 1개라도 true라면 true이고 전부 false여야 false이다
배열.some(함수)
배열.some((i)=>i==="a")
배열.some({return })
배열.some((i)=>{
i = i + 3;
return i % 2 === 0;
})
const array = [1,2,3,4,5];
console.log(array.some((i)=>i<2)); // true
console.log(array.some((i)=>i<5)); // true