map은 Array.prototype에 있는 메소드로써, 콜백함수를 받아서 각 원소마다 배열의 원소마다 콜백함수를 실행한 새로운 배열을 반환한다.
function map(arr, func) {
const result = [];
for (let i = 0; i < arr.length; i++) {
result.push(func(arr[i], i));
}
return result;
}
const arr = [1, 2, 3, 4, 5];
console.log(map(arr, (value) => value + 2));
console.log(arr.map((value) => value + 2);
// 두개 다 결과가 [3,4,5,6,7]이 나온다.
filter 또한 Array.prototype에 있는 메소드로써, arr에서 특정 조건의 원소들을 제거하는데에 유용하다. 말 그대로 필터의 느낌이다.
function filter(arr, func) {
const result = [];
for (let i = 0; i < arr.length; i++) {
func(arr[i], i) && result.push(arr[i]);
}
return result;
}
const arr = [1, 2, 3, 4, 5];
console.log(filter(arr, (value) => value > 2));
console.log(arr.filter(value => value > 2);
//둘 다 결과가 [3,4,5]가 나온다.