组合 JavaScript 数组

Combining JavaScript Arrays

本文关键字:数组 JavaScript 组合      更新时间:2023-09-26

我想采用一个格式化如下的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:

您说您想要具有idname键的对象,但您正在尝试创建namevalue键。使用您实际想要的属性名称。

试试这个:

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);