forEach()
- 배열 요소 별 콜백 함수 각각에 실행 : Array.forEach(function(item, index, array){})
- item : 배열 요소, index: 배열 위치, array: 배열
// 배열 함수를 단순 출력할때
let nums = [1,2,3];
//use for loop
for (let i = 0; i < nums.length; i++){
console.log(nums[i]); // 1 \n 2 \n 3
};
// use forEach
// 배열 내의 값이 각각 들어오면서 for문 수행
nums.forEach(function(a){
console.log(a); // 1 \n 2 \n 3
})
map()
- 배열 요소 별 함수 호출 및 결과를 배열로 반환 : Array.map(function(item, index, array){})
- item: 배열 요소, index: 배열 위치, array: 배열
//use for loop
let nums = [1,2,3,4,5];
let use_for_loop = []; // 객체를 매번 만들어야함
for (let i=0; i < nums.length; i++){
use_for_loop.push(nums[i]*2);
};
console.log(use_for_loop);
//use map
let use_map = nums.map(function(item) {
return item *2;
});
console.log(use_map)
find()
- 콜백 함수의 조건을 만족하는 단 하나의 값만 반환: Array.find(function(item,index,array){})
- item: 배열 요소, index: 배열위치, array: 배열
let users = [
{name: "Bob", age : 17, job:false},
{name: "Alice", age : 20, job:false},
{name: "Lily", age : 27, job:true},
];
let find_job = users.find(function (user) {
return user.job == false;
});
console.log(find_job); // { name: 'Bob', age: 17, job: false } 단 하나의 객체만
let find_age = users.find(function (user) {
return user.age >= 19;
})
console.log(find_age); // { name: 'Alice', age: 20, job: false }
filter()
- 콜백 함수의 조건을 만족하는 모든 값을 배열로 변환:Array.filter(function(item,index,array){})
- item: 배열 요소, index: 배열 위치, array: 배열
let users = [
{name: "Bob", age : 17, job:false},
{name: "Alice", age : 20, job:false},
{name: "Lily", age : 27, job:true},
];
let find_job = users.filter(function (user) {
return user.job == false;
});
console.log(find_job);
/* [
{ name: 'Bob', age: 17, job: false },
{ name: 'Alice', age: 20, job: false }
]
*/
let find_age = users.filter(function (user) {
return user.age >= 19;
})
console.log(find_age);
/*
[
{ name: 'Alice', age: 20, job: false },
{ name: 'Lily', age: 27, job: true }
]
*/
reduce()
- 요소별 함수 수행 누적 결과값 반환: Array.reduce(function(accumulator, item, index, array){})
- accumulator: 이전 함수 결과(initial로 초기화 설정 가능)
// 누적 데이터가 반환되는 함수
let nums = [1,2,3,4,5];
let call_count = 0;
console.log("result\tvalue\tindex");
let sum = nums.reduce(function (accumulator,item, index, array){
console.log(accumulator, "\t\t", item, "\t\t" , index );
call_count++;
return accumulator + item;
}, 0); // initial value=0
console.log(call_count);
console.log(sum);
/*
result value index
0 1 0
1 2 1
3 3 2
6 4 3
10 5 4
5
15
*/
배열 요소를 각각 출력하거나 조건을 만족하는 값을 찾거나 함수를 적용하거나 누적값을 출력해보았다.
특히 reduce로 누적값을 구할 수 있었는데 어떻게 쓰이게 될지 매우 궁금하다.
JS 기초 강의가 끝나면 거의 모든 부분이 실습이니 아자아자 힘내자~
반응형
'자료구조,알고리즘 > Java Script 기초' 카테고리의 다른 글
JS기초 13 : Collection, Map, Object 변환 (0) | 2022.07.24 |
---|---|
JS기초 12 : 생성자 함수, new.target (0) | 2022.07.24 |
JS기초 10 : 고차함수, sort()문제, 해결, 정렬 (0) | 2022.07.21 |
JS기초 9 : 배열 탐색, 정렬, 반전, 문자열 변환 (0) | 2022.07.20 |
JS기초 8 : 배열, 조작, 삭제, 병합 (0) | 2022.07.20 |
댓글