从多个数组创建多维对象数组

时间:2017-09-28 03:47:23

标签: javascript arrays

我有一些名字,一个是姓氏,一个是电子邮件。我想为数组的每个索引创建一个对象。

firstnames[0], lastnames[0], emails[0]

会变成

{firstname: value, lastname: value, email: value}

我将从该对象中取出并将其放入数组中。然而,目前我无法弄清楚如何解决这个问题,我无法将我的大脑包裹起来。希望有人可以帮我提出一个干净的方法。

1 个答案:

答案 0 :(得分:4)

你只需要一个循环。在循环的每次迭代中,从当前索引的每个数组中获取值。一个简单的for循环最容易理解。

以下使用array .map() method执行此操作。迭代firstnames并构建一个新数组,其中包含传递给.map()的函数作为参数返回的任何值。这样做的好处是您不必手动创建输出数组并将对象推入其中,.map()为您完成该部分,并且它还避免在当前范围内创建任何工作变量。 / p>

这假设所有数组的长度都相同。



var firstnames = ['Annie', 'Ben', 'Chris']
var lastnames = ['Andrews', 'Brown', 'Carmichael']
var emails = ['a@a.com', 'b@b.com', 'c@c.com']

var output = firstnames.map(function(v, i) {
  return {
    firstname: v,
    lastname: lastnames[i],
    email: emails[i]
  }
})

console.log(output)