JavaScript에서 forEach() 메서드는 일반적으로 배열을 반복하고 각 요소에 대해 특정 작업을 수행하는 데 사용됩니다. 그러나 반복 루프 내에서 이러한 요소를 수정하려고 시도하면 원래 값이 유지되는 경우가 많습니다.
다음 예를 고려하세요.
var arr = ["one", "two", "three"]; arr.forEach(function (part) { part = "four"; return "four"; }); alert(arr); // Output: ["one", "two", "three"]
루프 내의 부분에 "4"를 할당하더라도 , arr 배열은 변경되지 않습니다. 이는 forEach() 콜백이 원본 요소에 대한 참조가 아닌 각 요소의 복사본만 받기 때문입니다.
의미 있는 수정을 위해 다음을 활용할 수 있습니다. forEach() 콜백에서 제공하는 인덱스 매개변수입니다. 이 매개변수는 배열에 있는 현재 요소의 인덱스를 나타냅니다.
arr.forEach(function (part, index, theArray) { theArray[index] = "hello world"; });
이 경우 theArray는 원래 배열을 참조하며 인덱스 값을 사용하여 해당 요소에 직접 액세스하고 수정할 수 있습니다.
또는 forEach() 콜백의 this 매개변수를 배열:
arr.forEach(function (part, index) { this[index] = "hello world"; }, arr); // Use arr as this
arr을 이 값으로 설정하면 이[인덱스]가 배열 내의 올바른 요소를 가리키는지 확인할 수 있습니다.
forEach()는 반복과 수정을 허용하지만 특정 용도에 더 적합할 수 있는 다른 배열 프로토타입 방법이 있습니다. 케이스:
작업에 따라 적절한 방법을 선택하면 효율적이고 정확한 배열 조작이 가능합니다.
위 내용은 JavaScript의 forEach 루프 내에서 배열 요소를 수정해도 원래 배열이 변경되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!