使用两个数组创建单个对象

时间:2017-06-12 18:56:31

标签: javascript

我有两个长度相同的数组

ids = [123, 456, 789, ...., 999];
names = ['foo', 'bar', ... , 'zzz'];

我想创建一个像

这样的数组
[ {id: 123, name: 'foo'}, {id: 123, name: 'bar'}, ..., {id: 999, name: 'zzz'} ]

我尽量避免使用forEach

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

map可以吗?



ids = [123, 456, 789, 999];
names = ['foo', 'bar', 'baz', 'zzz'];

result = ids.map(function(_, i) {
    return {id: ids[i], name: names[i]}
});

console.log(result)




答案 1 :(得分:0)

如果您不想使用任何高阶函数,请执行以下操作:

var objects = [];
for (var i = 0; i < ids.length; i++) {
  objects.push({id: ids[i], name: names[i]});
}

答案 2 :(得分:0)

这里不需要forEach。使用与map类似的forEach

var ids = [123, 456, 999];
var names = ['foo', 'bar', 'zzz'];

var result = ids.map(function (currentId, index) {
  return {
    id: currentId,
    name: names[index]
  };
});

console.log(result);

forEach版本看起来像这样(注意它们有多相似):

var ids = [123, 456, 999];
var names = ['foo', 'bar', 'zzz'];

var result = [];
ids.forEach(function(currentId, index) {
  result.push({
    id: currentId,
    name: names[index]
  });
});

console.log(result);

答案 3 :(得分:0)

以下代码使用null,但您无需处理它。我希望这对你有用。

&#13;
&#13;
foreach
&#13;
&#13;
&#13;