>  기사  >  웹 프론트엔드  >  자바스크립트의 forEach() 메소드는 무엇을 합니까?

자바스크립트의 forEach() 메소드는 무엇을 합니까?

青灯夜游
青灯夜游원래의
2021-10-09 16:35:372238검색

JavaScript에서 forEach() 메서드는 배열에 대한 반복 작업을 수행하는 데 사용됩니다. 배열의 각 요소는 호출될 수 있으며 해당 요소는 처리를 위해 콜백 함수에 전달됩니다. "array.forEach(function(Value,index) ,arr) ,thisValue)”.

자바스크립트의 forEach() 메소드는 무엇을 합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

Array 유형은 각 배열에 대한 forEach() 프로토타입 메서드를 정의하며, 이는 배열에서 반복 작업을 수행하는 데 사용할 수 있습니다.

forEach() 메서드는 배열의 각 요소를 호출하고 해당 요소를 콜백 함수에 전달하는 데 사용됩니다.

구체적인 구문은 다음과 같습니다.

array.forEach(function(currentValue, index, arr), thisValue)

매개변수 설명은 다음과 같습니다.

  • array: 배열 개체입니다.

  • function(currentValue, index, arr): 필수 매개변수, 최대 3개의 매개변수를 받을 수 있는 함수입니다. forEach는 배열의 각 요소에 대해 callbackfn 함수를 한 번씩 호출합니다.

    • 현재값: 필수입니다. 현재 요소

    • 색인: 선택 사항. 현재 요소의 인덱스 값입니다.

    • arr: 선택 사항입니다. 현재 요소가 속한 배열 개체입니다.

  • thisArg: 선택적 매개변수, callbackfn 함수에서 this가 참조할 수 있는 객체입니다. thisArg가 생략되면 this 값은 정의되지 않습니다.

배열에 나타나는 각 요소에 대해 forEach 메서드는 오름차순 인덱스 순서로 callbackfn 함수를 한 번 호출하지만 배열의 빈 요소에 대해서는 콜백 함수를 호출하지 않습니다.

배열 객체 외에도 forEach 메서드는 연관 배열 객체, 인수 등과 같이 길이 속성이 있고 숫자로 인덱스된 속성 이름이 있는 모든 객체에 사용할 수 있습니다.

forEach 메서드는 원래 배열을 직접 수정하지 않지만 콜백 함수가 이를 수정할 수 있습니다. forEach 메소드가 시작된 후 배열 객체를 수정한 결과는 표와 같다.

배열을 수정하는 콜백 함수의 영향
forEach 메서드가 시작된 후의 조건 요소가 콜백 함수에 전달되는지 여부
배열의 원래 길이를 초과하는 요소 추가 아니요
요소를 추가하여 배열에서 누락된 요소 채우기 예, 인덱스가 콜백 함수에 전달되지 않은 경우
요소가 변경되었습니다. 예, 요소가 콜백 함수에 전달되지 않은 경우 콜백 함수
배열에서 요소 제거 아니요, 요소가 콜백 함수에 전달되지 않은 경우

예 1: forEach를 사용하여 배열 a를 반복한 다음 값과 각 요소의 첨자 인덱스는 다음과 같습니다.

function f(value,index,array) {
    console.log("a[" + index + "] = " + value);
}
var a = ['a', 'b', 'c'];
a.forEach(f);

출력:

자바스크립트의 forEach() 메소드는 무엇을 합니까?

예 2: forEach를 사용하여 배열 a를 반복한 다음 배열 요소의 합계를 계산하고

var a = [10, 11, 12], sum = 0;
a.forEach (function (value) {
    sum += value;
});
console.log(sum);  //返回33

출력 :

자바스크립트의 forEach() 메소드는 무엇을 합니까?

[추천 학습: javascript 고급 튜토리얼]

위 내용은 자바스크립트의 forEach() 메소드는 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.