我有一些名字,一个是姓氏,一个是电子邮件。我想为数组的每个索引创建一个对象。
firstnames[0], lastnames[0], emails[0]
会变成
{firstname: value, lastname: value, email: value}
我将从该对象中取出并将其放入数组中。然而,目前我无法弄清楚如何解决这个问题,我无法将我的大脑包裹起来。希望有人可以帮我提出一个干净的方法。
答案 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)