【发布时间】:2017-02-20 06:11:13
【问题描述】:
使用Array of array to object - javascript 和Convert an array to an array of objects 作为指导,我尝试编写一个函数,结果是 取这个数组列表:
var list = [['name', 'Sparky'], ['breed', 'lab'], ['age', 4]];
并将其转换为:
{
name : 'Sparky'
breed : 'lab',
age : 4
}
但是,当我运行下面的代码时:
var list = [
['name', 'Sparky'],
['breed', 'lab'],
['age', 4]
];
function toObjects(data) {
var keys = data.shift(),
i = 0,
k = 0,
obj = null,
output = [];
for (i = 0; i < data.length; i++) {
obj = {};
for (k = 0; k < keys.length; k++) {
obj[keys[k]] = data[i][k];
}
output.push(obj);
}
return output;
}
var data = [
['name', 'Sparky'],
['breed', 'lab'],
['age', 4]
];
console.log(toObjects(data))
我明白了:
console.log(toObjects(data)); //=>
[ { name: 'breed', Sparky: 'lab' },{ name: 'age', Sparky: 4 } ]
但我需要输出没有额外的数组 [],并且还需要像这样列出单个文件:
{
name : 'Sparky'
breed : 'lab',
age : 4
}
有什么建议吗?谢谢,麻烦您了!
【问题讨论】:
-
然后将
output定义为{}而不是obj[..][..]做output[..][..] -
你不能
list.reduce((accu, curVal) => { accu[curVal[0]] = curVal[1]; return accu; }, {})吗?
标签: javascript arrays javascript-objects