안녕하세요,지도가있는 MDN에 대한 예를 보았습니다. 일반 배열로도 이해할 수 있지만이 예에서는 루프가 발생했습니다.개체를 사용한지도 함수 이해 : 키 및 값
var kvArray = [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}];
var reformattedArray = kvArray.map(function(obj){
var rObj = {};
rObj[obj.key] = obj.value;
return rObj;
});
// reformattedArray is now [{1:10}, {2:20}, {3:30}],
// kvArray is still [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}]
본질적으로 "키"및 "값"속성이 "사라지는"방법을 이해하지 못합니다. 나는 rObj [obj.key] = obj.value라고 생각했다. 원래 배열에서 의미있는 라인은 키의 값을 찾고 원래 키를 해당 키의 값으로 대체합니다.이 시점에서 나는 정말로 혼란스러워합니다. 누군가이 값들을 어떻게 얻었는지 설명해 주시겠습니까?
'rObj'는 a 콜백이 호출 될 때마다 새로 생성 된 빈 객체입니다. 'rObj [obj.key] = obj.value;'는'obj.key'와 같은 속성 이름을 가진 객체에 하나의 속성을 추가합니다 ... – nnnnnn
그들은 사라지지 않습니다 - 여전히'kvArray'에 있습니다 – zerkms
나는 당신의 질문을 이해하지 못합니다. 지도에서 각 객체에 대해 새 객체가 만들어집니다.이러한 각 객체에는 현재 배열 인덱스의 인덱스가 지정된 키가 있으며 값은 현재 배열 인덱스의 값입니다. reformattedArray는 모든 객체를 포함하는 반환 된 배열입니다. – William