组合JavaScript数组
我想采用如下格式的JavaScript对象:组合JavaScript数组,javascript,arrays,Javascript,Arrays,我想采用如下格式的JavaScript对象: results = { names: [ "id", "first_name" ], values: [ [ 1234, "Fred" ], [ 4321, "Joe" ], [ 1123,
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)
var数据=[]
对于(i=0;i
问题1:
results = {
[id: 1234, name: "Fred"],
[id: 4321, name: "Joe"],
[id: 1123, name: "Mary"]
}
及
及
数组[]
由一组按顺序排列的值组成
对象{}
由一组键:值
对组成
你每次都用错了。在有[]
的地方使用{}
,反之亦然
问题2:
results = {
[id: 1234, name: "Fred"],
[id: 4321, name: "Joe"],
[id: 1123, name: "Mary"]
}
您说希望对象具有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);
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);