const array = [1,2,3,4,5,6]
array.forEach(element=>console.log(element));
console.log(array)
//a
//b
//c
매개변수
forEach()함수는 주어진 callback을 배열에 있는 각 요소에 대해 오름차순으로 한번씩 실행한다.
예외처리가 없으면 forEach는 요소의 수만큼 반복한다.
const array =[1,2,3,4,5]
const mapItem = array.map(x=>x*2)
console.log(mapItem)
// array = [1,4,9,16,25]
map 함수는 기존 배열을 새로운 배열 요소로 생성한다.
기존 함수의 length만큼 배열을 return하기 때문에 callback 함수의 this 값이 아닐 경우 undifined를 포함해서 배열을 return한다.
const numbers = [1,2,3,4,5,6,7,8]
const result = numbers.filter(number =>
if(number%2===0)return number
)
console.log(result)
//[2,4,6,8]
filter 함수도 마찬가지로 기존 배열을 새로운 배열 요소로 생성한다. 하지만 map과 달리 callback함수의 this값만 포함해서 원하는 배열을 생성해 가져올 수 있다.
let array = [1,2,3,4,5,6]
array.reduce((item,v)=>{
return item+v
},0)
console.log(array)
//15
reduce는 callback함수의 this값을 앞에서 부터 실행해준다. 0+1의 결과를 v에 담은 후 그값을 뒤의값과 더해준다. v는 결과값을 담고 최종적으로는 this값을 실행한 최종값을 return한다.
직관적으로 풀어 쓰자면
0+1=1, 1+2=3, 3+3=6, 6+4=10, 10+5=15
이렇게 앞에서부터 연산한 최종 결과만을 return한다.