给定以下数组:
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/