Używanie zmiennej dla nazwy właściwości obiektu - JavaScript [duplikat]
To pytanie ma już odpowiedź tutaj:
Jak korzystać z wartości zmiennej przy tworzeniu obiektu w JavaScript [duplikat] 1 odpowiedźwidział kilka związanych z tym odpowiedzi, ale żadna nie odpowiedziała na tę wersję danego pytania.
Zastanów się, co następuje: (linkto: jsfiddle)
$(function(){
arrKeys = [];
objArr = [];
nameArr = ['name1','name2','name3','name4'];
descArr = ['desc1','desc2','desc3','desc4'];
allValues = {name: nameArr, desc: descArr};
arrKeys[0] = 'name';
arrKeys[1] = 'desc';
first = arrKeys.shift(); // returns 'name'
$(allValues[first]).each(function (key,value) {
console.log(first); //returns 'name'
objArr[key] = {first:value}; //the problem
});
console.log(objArr);
});
Z konsolą.log (objArr) produkującą następującą tablicę obiektów:
[Object, Object, Object, Object] 0: Objectpierwsz: „name1” 1: Objectpierwsz: „name2” 2: Objectpierwsz: „name3” 3: Objectpierwsz: „name4” długość: 4
Problem polega na tym, że chciałbym, aby właściwość „first” była wartością zmiennej var first (czyli „name”). Zamiast tego wynik byłby następujący:
[Object, Object, Object, Object] 0: Objectimi: „name1” 1: Objectimi: „name2” 2: Objectimi: „name3” 3: Objectimi: „name4” długość: 4
(łączyć z: jsfiddle)