我想采用一个格式化如下的JavaScript对象:
results = {
names: [
"id",
"first_name"
],
values: [
[
1234,
"Fred"
],
[
4321,
"Joe"
],
[
1123,
"Mary"
]
]
}
并变成这样:
results = {
[id: 1234, name: "Fred"],
[id: 4321, name: "Joe"],
[id: 1123, name: "Mary"]
}
我尝试做这样的事情,但我无法获得正确的结构:
var data = []
for (i=0; i < results['values'].length; i++ ){
var innerData = []
for (b=0; b < results['names'].length; b++ ){
innerData.push([name:results['names'][b], value: results['values'][i][b]])
}
data.push(innerData)
}
console.log(data)
问题 1:
results = {
[id: 1234, name: "Fred"],
[id: 4321, name: "Joe"],
[id: 1123, name: "Mary"]
}
和
var data = []
和
[name:results['names'][b]…
数组[]
按顺序由一组值组成。
对象{}
由一组key:value
对组成。
您每次都使用错误的。在有[]
的地方使用{}
,反之亦然
问题2:
您说您想要具有id
和name
键的对象,但您正在尝试创建name
和value
键。使用您实际想要的属性名称。
试试这个:
var data = [];
for (i in results['values']){
var innerData = {}
var value = results['values'][i];
for (b in value){
var key = results['names'][b];
innerData[key] = value[b];
}
data.push(innerData);
}
console.log(data);