看到了一些与此相关的答案,但没有人回答这个版本的问题。
考虑以下内容:(链接到: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
问题是我希望属性“first”成为 var first 的值(即“name”.. 因此,结果将是:
[对象,对象,对象,对象] 0:对象 名称:“name1” 1:对象 名称:“name2” 2:对象 名称:“name3” 3:对象 名称:“name4” 长度:4
(链接:jsfiddle)