javascript - 如何将多个数组转换为多个对象的一个​​数组?

标签 javascript arrays object

给定以下数组:

let x = [a, b, c, d];
let y = [e, f, g, h];
let w = [i, j, k, l];

如何生成如下所示的新对象数组:

let z = [
    {x: a, y: e, w: i},
    {x: b, y: f, w: j},
    {x: c, y: g, w: k},
    {x: d, y: h, w: l}
];

这是我到目前为止的想法:

for(var i; i < x.length; i++) {

    x = x[i];
    y = y[i];
    w = w[i];

    obj = {
        x: x,
        y: y,
        w: w
    };

    z = [];
    z.push(obj);
}

谢谢!

最佳答案

使用Array#map函数并获取索引,您将使用它来获取第二个和第三个数组中的项目。如果第一个数组比其他数组包含更多项目,我也使用 ||

let x = ['a', 'b', 'c',' d'];
let y = ['e', 'f', 'g', 'h'];
let w = ['i', 'j', 'k', 'l'];

let mapped = x.map((item, index) => ({ x: item, y: y[index] || '', w: w[index] || '' }));

console.log(mapped);

关于javascript - 如何将多个数组转换为多个对象的一个​​数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47658499/

相关文章:

php - 如何在php中连接两个数组?

c - 多维数组随机悬挂

javascript - 如何访问被重写的对象的内置方法?

javascript - 使用 map 转换数组 - Javascript

PHP - 试图获取非对象的属性

javascript - 计算查询字符串中参数的数量

Javascript:首先按第二列desc排序二维数组,然后按第一列asc排序

arrays - 使用按位与在数组中搜索位模式的最佳算法是什么?

javascript - 在 Svelte 组件中动态加载模板

javascript - 如何在 CryptoJS 中使用私钥 (pem) 签署 JWT?