>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 `forEach`를 사용하는 동안 배열 값을 수정할 수 있습니까?

JavaScript에서 `forEach`를 사용하는 동안 배열 값을 수정할 수 있습니까?

DDD
DDD원래의
2024-11-09 04:58:02427검색

Can You Modify Array Values While Using `forEach` in JavaScript?

forEach를 사용하여 반복하는 동안 배열 값 수정

JavaScript에서 forEach 메서드를 사용하면 배열 요소를 반복할 수 있습니다. 그러나 기본적으로 반복 콜백 함수 내에서는 배열 값을 수정할 수 없습니다.

다음 예를 고려하세요.

var arr = ["one", "two", "three"];

arr.forEach(function(part) {
  part = "four";
  return "four";
});

alert(arr); // Output: ["one", "two", "three"]

보시다시피 배열 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); // Array must be passed as `this`

두 접근 방식 모두 forEach 메서드를 사용하여 반복하면서 배열 값을 수정할 수 있습니다.

위 내용은 JavaScript에서 `forEach`를 사용하는 동안 배열 값을 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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