>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 객체에 대한 지도 기능을 어떻게 만들 수 있나요?

JavaScript에서 객체에 대한 지도 기능을 어떻게 만들 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-18 07:46:13584검색

How Can I Create a Map Function for Objects in JavaScript?

JavaScript에서 객체에 대한 맵 함수 만들기(Array.map 대체)

JavaScript에서 Array.prototype.map() 배열을 반복하고 각 요소에 지정된 함수를 적용하는 데 널리 사용되는 방법입니다. 그러나 객체에 대한 유사한 기본 메서드는 없습니다. 이 기사에서는 객체에 대한 사용자 정의 지도 기능을 도입하여 이러한 제한 사항에 대한 솔루션을 살펴봅니다.

문제:

키-값 쌍이 있는 객체를 생각해 보세요.

myObject = {
  'a': 1,
  'b': 2,
  'c': 3
};

목표는 각 값이 지정된 함수에 의해 변환되는 새 개체를 만드는 것입니다. 예를 들어 값을 두 배로 늘리겠습니다.

newObject = myObject.map(function(value, label) {
  return value * 2;
});

// newObject should now be { 'a': 2, 'b': 4, 'c': 6 }

해결책:

JavaScript에는 객체에 대한 기본 맵 기능이 없지만 객체를 사용하는 우아한 솔루션이 있습니다. key() 및 forEach() 메소드:

var myObject = {
  'a': 1,
  'b': 2,
  'c': 3
};

Object.keys(myObject).forEach(function(key, index) {
  myObject[key] *= 2;
});

console.log(myObject);
// Output: { 'a': 2, 'b': 4, 'c': 6 }

여기서 코드:

  • Object.keys(myObject)는 객체의 속성 이름 배열을 반환합니다.
  • forEach() 메서드는 이 배열을 반복합니다.
  • 각 객체에 대해 속성에 대해 myObject[key]를 사용하여 해당 값에 액세스하고 변환(2 곱하기)을 직접 적용합니다. object.

이 접근 방식은 원래 개체를 수정하므로 특정 시나리오에서는 바람직하지 않을 수 있습니다. 변환된 값으로 새 개체를 생성하려면 변환을 적용하기 전에 원본 개체를 복제하면 됩니다.

위 내용은 JavaScript에서 객체에 대한 지도 기능을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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