Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

“forEach()” 함수는 JavaScript 배열의 각 요소에 대해 지정된 함수를 실행하는 데 사용합니다. “forEach()” 함수를 사용하면 배열의 각 요소를 반복 처리할 때 유용하며, 각 요소에 대해 지정된 동작을 수행할 수 있습니다. 예제를 통해 하나씩 알아봅시다.

 

 

 

1.  구문

 

array.forEach(callback(currentValue, index, array), thisArg)

l  “array”: 배열에서 각 요소에 함수를 적용할 배열입니다.

l  “callback”: 배열의 각 요소에 적용할 함수를 정의하는 함수입니다.

l  “currentValue”: 현재 처리 중인 요소의 값입니다.

l  “index”: 현재 처리 중인 요소의 인덱스입니다.

l  “array”: “forEach()”를 호출한 배열입니다.

l  “thisArg” (선택적): 콜백 함수 내에서 “this” 키워드의 값으로 사용할 객체입니다.

 

 

2. 기본 사용

 

배열 “numbers”의 각 요소에 대한 반복 작업을 수행하며 각 요소에 값을 콘솔에 출력합니다.

 

const numbers = [1, 2, 3, 4, 5];
numbers.forEach(function (number) {
  console.log(number);
});
 
[출력]
1
2
3
4
5

 

 

3. 요소 및 인덱스 출력

 

배열 “fruits”의 각 요소와 해당 인덱스의 값을 출력합니다.

 

const fruits = ["apple", "banana", "cherry"];
fruits.forEach(function (fruit, index) {
  console.log(“Fruit at index ${index}: ${fruit}”);
});
 
[출력]
Fruit at index 0: apple
Fruit at index 1: banana
Fruit at index 2: cherry

 

 

4. 화살표 함수 사용

 

화살표 함수를 사용하여 배열 “colors”의 각 요소를 출력합니다.

 

const colors = ["red", "green", "blue"];
colors.forEach((color) => {
  console.log(“Color: ${color}”);
});
 
[출력]
Color: red
Color: green
Color: blue

 

 

5. this 키워드 “thisArg” 파라미터 사용

 

“thisArg”를 사용하여 콜백 함수 내에서 “this” 값의 컨텍스트를 설정합니다. 코드에서 “obj” 객체는 “value”라는 속성과 “printWithAddition”이라는 메소드를 가지고 있습니다. “printWithAddition” 메소드는 배열을 매개변수로 받아, 배열의 각 요소에 “this.value”를 더한 결과를 출력합니다.

 

“printWithAddition” 메소드 내의 “forEach” 메소드에서 두 번째 매개변수로 “this”를 전달하면, 콜백 함수 내에서 “this”“obj”를 가리킵니다. 따라서 “this.value + item” 'Hello, Alice', 'Hello, Bob', 'Hello, Charlie'와 같은 결과를 출력하게 됩니다. 만약 두 번째 매개변수를 생략하면, 콜백 함수 내의 “this”“undefined”를 가리키게 되므로, “this.value”“undefined”가 되어 에러가 발생하게 됩니다.

 

let obj = {
  value: 'Hello, ',
  printWithAddition: function(arr) {
    arr.forEach(function(item) {
      console.log(this.value + item);
    }, this);
  }
};
 
let names = ['Alice', 'Bob', 'Charlie'];
obj.printWithAddition(names);
 
[출력]
Hello, Alice
Hello, Bob
Hello, Charlie
반응형
Posted by 녹두장군1
,