객체나 배열의 모든 요소들을 순차적으로 순회
map(콜백함수, thisArg)
- 콜백함수(element, index, array) : return 조건
-element : 현재 값
-index : 현재 인덱스
-array: 객체- thisArg : filter에서 사용될 this 객체(없으면 undefined)
[사용] - Array
let arr = [1,3,5,7,9]; arr.map(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능! console.log(e); // 1 3 5 7 9 });
아래는 화살표 함수 적용
let arr = [1,3,5,7,9]; let new_arr = arr.map((e,i,a) => console.log(e)); // 매개변수 위치만 같으면 사용 가능!
[사용] - JSON
let ob = [ { name: "abc", password: "1234", number: 1 }, { name: "def", password: "5678", number: 5 } ]; ob.map(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능! console.log(e.name, e.number); /* abc 1 def 5 */ });
map 과 forEach() 의 차이!
: map은 새로운 배열이나 객체로 반환(return) 하지만,
forEach()는 반환하지 않는다. (콜백함수만 실행)
순회하며 조건을 통해 요소를 걸러내어 새로운 값을 반환.
filter(콜백함수, thisArg)
- 콜백함수(element, index, array) : return 조건
-element : 현재 값
-index : 현재 인덱스
-array : 객체- thisArg : filter에서 사용될 this 객체(없으면 undefined)
[사용] - Array
let arr = [1,3,5,7,9]; let new_arr = arr.filter(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능! return e>4; }); console.log(new_arr); // 5 7 9
아래는 화살표 함수 적용
let arr = [1,3,5,7,9]; let new_arr = arr.filter((e,i,a) => e>4); // 매개변수 위치만 같으면 사용 가능! console.log(new_arr); // 5 7 9
[사용] - JSON
let ob = [ { name: "abc", password: "1234", number: 1 }, { name: "def", password: "5678", number: 5 } ]; let new_ob = ob.filter(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능! return e.number>3; }); console.log(new_ob); /* name : def password : 5678, number : 5 */
아래는 화살표 함수 적용
let ob = [ { name: "abc", password: "1234", number: 1 }, { name: "def", password: "5678", number: 5 } ]; let new_ob = ob.filter((e,i,a)=> e.number>3 ); // 매개변수 위치만 같으면 사용 가능! console.log(new_ob); /* name : def password : 5678, number : 5 */
콜백함수의 첫번째 매개변수인 acc를 중심으로 요소들을 순회 하며 로직 수행
reduce(콜백함수, initValue)
- 콜백함수(accumulator,element, index, array) : return 조건
-accumulator : 누적 값
-element : 현재 값
-index : 현재 인덱스
-array : 객체- initValue : 초기 값 (디폴트는 0)
[사용] - Array
let arr = [1,3,5,7,9]; let sum = arr.reduce(function(acc,e,i,a){ return acc+e; },0); console.log(sum); // 25
아래는 화살표 함수 적용
let arr = [1,3,5,7,9]; let sum = arr.reduce((acc,e,i,a) => (acc+e)); console.log(sum); // 25
[사용] - JSON
let ob = [ { name: "abc", password: "1234", number: 1 }, { name: "def", password: "5678", number: 5 } ]; let sum_number = ob.reduce(function(acc,e,i,a){ return acc.number+e.number; }); console.log(sum_number);
아래는 화살표 함수 적용
let ob = [ { name: "abc", password: "1234", number: 1 }, { name: "def", password: "5678", number: 5 } ]; let sum_number = ob.reduce((acc,e,i,a)=> (acc.number+e.number) ); console.log(sum_number);