.forEach()

  • ECMASCript 5 Edition
  • IE 6, 7,8 적용 안됨. 최신 브라우저 적용
var movielist = [];
movielist.push('터널');
movielist.push('덕혜옹주');
movielist.push('부산행');
movielist.push('서울역');

movielist.forEach(function(item, idx) {
	console.log('item:', item); // 원소
	console.log('index: ', index); // 순서
	console.log('arr: ', arr);// 배열
	return 'item '+ idx +': ' + item;
	// console.log(`item: ${item}`, item); //ES2015
});

.map()

  • ECMAScript 2015
  • 크로스브라우징 이슈
var movielist = [];
movielist.push('터널');
movielist.push('덕혜옹주');
movielist.push('부산행');
movielist.push('서울역');

movielist.map(function(item, index, arr){
	console.log('item' + index + ':', item);
	// 한번만 실행하는 문구.
	// movielist lenght 4개 - 1 = 3이 되는 순간 한번만 실행.
	if ( index === movielist.length - 1 ) {
		 console.log('arr:', arr);
	}
});

.filter()

function isBigEnough(value) {
  return value >= 10;
}

var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);

console.log(filtered); //[12, 130, 44]

.forEach() VS .map() VS .filter() 공통점
  • 매개변수가 callback 이고 callback을 실행할 때 this로서 사용하는 값.
  • 매개변수로 들어간 callback 함수의 매개변수는 item(element), index, array 순서로 들어간다.
  • IE하위버전(IE 6, 7, 8)에 쓸 수 없다. ECMASCript 5 Edition

    크로스브라우징 이슈 발생. 하위브라우저 polyfill 사용(작은 코드)

.forEach() VS .map() VS .filter() 차이점
.forEach() .map() .filter()
반환 반환값이 없다 반환값이 있다(새로운 배열) 반환값이 있다(새로운 배열: true를 반환, 그렇지 않으면 false)