これに関連するいくつかの回答を見ましたが、問題の主題のこのバージョンに回答するものはありません。
以下を検討してください: (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);
});
console.log(objArr) を使用すると、次のようなオブジェクトの配列が生成されます。
[オブジェクト、オブジェクト、オブジェクト、オブジェクト] 0: オブジェクト 先頭: "name1" 1: オブジェクト 先頭: "name2" 2: オブジェクト 先頭: "name3" 3: オブジェクト 先頭: "name4" 長さ: 4
問題は、プロパティ「最初」を最初の変数の値(「名前」)にしたいということです。代わりに、結果は次のようになります。
[オブジェクト、オブジェクト、オブジェクト、オブジェクト] 0: オブジェクト 名: "name1" 1: オブジェクト 名: "name2" 2: オブジェクト 名: "name3" 3: オブジェクト 名: "name4" 長さ: 4
(リンク先: jsfiddle )