Nice programing

자바 스크립트 사전의 키는 값으로 저장되지 않고 변수 이름으로 저장됩니다.

nicepro 2021. 1. 5. 21:12
반응형

자바 스크립트 사전의 키는 값으로 저장되지 않고 변수 이름으로 저장됩니다.


이렇게 사전 객체를 만들려고합니다.

var obj = { varName : varValue };

내가 기대하는 것은 if varName='foo', obj 여야 {'foo', 'some value' }하지만 내가 보는 것은 {varName, 'some value'}변수의 값이 사용되지 않고 변수 이름이 키로 사용된다는 것입니다. 변수 값을 키로 사용하려면 어떻게해야합니까?


다음과 같이 시도하십시오.

var obj = {};
obj[varName] = varValue;

이전 자바 스크립트에서는 '동적'키로 개체를 초기화 할 수 없습니다. var obj = { varName : varValue };와 동일합니다 var obj = { "varName" : varValue };. 이것이 자바 스크립트가 해석하는 방식입니다.

그러나 새로운 ECMAScript는 계산 된 속성 이름을 지원 하며 다음을 수행 할 수 있습니다.

var obj = { [varName]: varValue };

작년에 더 나은 브라우저 지원을받은 ECMAScript 2015부터는 변수 인덱스 표기법을 사용할 수 있습니다.

var obj = { [varName] : varValue };

이것은 구문 적으로 다음과 같습니다.

var obj = {};
obj[varName] = varValue;

표현식 또는 기호를 속성 키로 사용할 수도 있습니다.

var contact = {
    company: companyName,
};
var companiesWithContacts = {
    [contact.company.toLowerCase()]: true
};
var myList = {
    [Symbol.iterator]: createIteratorForList
};
function createIteratorForList() { ... }

참조 URL : https://stackoverflow.com/questions/10640159/key-for-javascript-dictionary-is-not-stored-as-value-but-as-variable-name

반응형