我有两个长度相同的数组
ids = [123, 456, 789, ...., 999];
names = ['foo', 'bar', ... , 'zzz'];
我想创建一个像
这样的数组[ {id: 123, name: 'foo'}, {id: 123, name: 'bar'}, ..., {id: 999, name: 'zzz'} ]
我尽量避免使用forEach
。
有什么建议吗?
答案 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
,但您无需处理它。我希望这对你有用。
foreach
&#13;