본문 바로가기

javascript

TIL no.8 - forEach method :JavaScript

forEach는 

 

주어진 함수를 배열 요소 각각에  대해 실행하는 메서드이다.

arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])

 

 

배열에 대한 반복문이라고 이해할 수 있습니다.

배열의 각 요소에 대해 callback을 실행합니다.

배열을 변형하지 않기 때문에 중간에 break; 문을 사용할 수 없습니다. 

중간에 멈춰야 하는 경우엔 forEach()는 적절하지 않기 때문에 for()문을 사용해야 합니다.

 

 

  for 반복문을 forEach() 로 바꾸기 1  

let members = ['최하늘', '김지선', '박아인'];

for (var i = 0; i < members.length; i++) {
	member = members[i];
    System.out.printIn(member + '이 상담을 받았습니다');
 }

위의 for문 반복문으로 나타낼 수 있는 것을 

 

let members = ['최하늘', '김지선', '박아인'];

members.forEach(member => {
	console.log(member + '님이 상담을 받았습니다');
});

forEach문을 통해  더 간단하게 작성할 수 있습니다.

 

 

 

  for 반복문을 forEach() 로 바꾸기 2 

let fruits = ['banana', 'apple', 'grape'];
let copy = [];

//for문
for(let i = 0; i < fruits.length; i++) {
	copy.push(fruits[i]);
}

//forEach문
fruits.forEach(function(fruit){
	copy.push(fruit);
});

반복을 forEach() 로 바꾸기 1  

 

 

*forEach 여러 작성법

 

let numbers = [1,2,3,4,5,6,7];
numbers.forEach(number => console.log(number);)

 

numbers.forEach(function(number){
	console.log(number);
})

 

let fruits = ['banana', 'apple', 'orange', 'grape'];
let fruits2 = ['cherry'];

fruits.forEach((fruit) => fruits2.push(fruit));
console.log(fruits2);
let sum = 0;
let numbers = [20, 11, 33, 10, 7, 77];
numbers.forEach(addTotal);

function addTotal(number) {
	sum += number;
}

console.log(sum);
let sum = 0;
let numbers = [20, 11, 33, 10, 7, 77];
numbers.forEach(number) => {
	sum += number;
});

console.log(sum);
let numbers = [20, 11, 33, 10, 7, 77];
numbers.forEach((number, index, array) => {
	array[index] = number * 2;
});

console.log(numbers);

thisArg 은 무엇인가?

callback을 실행할 때 this로 사용하는 값.

 

(아직 this에 대한 이해가..부족해서 더 공부해봐야 될 것 같다..😫)