Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用两个数组创建单个对象_Javascript - Fatal编程技术网

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

Javascript 使用两个数组创建单个对象,javascript,Javascript,我有两个长度相同的数组 ids = [123, 456, 789, ...., 999]; names = ['foo', 'bar', ... , 'zzz']; 我想创建一个数组,如 [ {id: 123, name: 'foo'}, {id: 123, name: 'bar'}, ..., {id: 999, name: 'zzz'} ] 如果可能的话,我会尽量避免使用forEach 有什么建议吗?地图可以吗 ids=[123456789999]; 名称=['foo','bar','

我有两个长度相同的数组

ids = [123, 456, 789, ...., 999];
names = ['foo', 'bar', ... , 'zzz'];
我想创建一个数组,如

[ {id: 123, name: 'foo'}, {id: 123, name: 'bar'}, ..., {id: 999, name: 'zzz'} ]
如果可能的话,我会尽量避免使用forEach


有什么建议吗?

地图可以吗

ids=[123456789999];
名称=['foo','bar','baz','zzz'];
结果=ids.map(函数(u,i){
返回{id:ids[i],name:names[i]}
});

console.log(结果)
映射是否正常

ids=[123456789999];
名称=['foo','bar','baz','zzz'];
结果=ids.map(函数(u,i){
返回{id:ids[i],name:names[i]}
});

console.log(result)
如果不想使用任何高阶函数,只需执行以下操作:

var objects = [];
for (var i = 0; i < ids.length; i++) {
  objects.push({id: ids[i], name: names[i]});
}
var对象=[];
对于(变量i=0;i
如果您不想使用任何高阶函数,请执行以下操作:

var objects = [];
for (var i = 0; i < ids.length; i++) {
  objects.push({id: ids[i], name: names[i]});
}
var对象=[];
对于(变量i=0;i
此处无需使用
forEach
。使用类似于forEach的
map

varids=[123456999];
变量名称=['foo','bar','zzz'];
var result=ids.map(函数(currentId,索引){
返回{
id:currentId,
名称:名称[索引]
};
});

控制台日志(结果)此处无需使用
forEach
。使用类似于forEach的
map

varids=[123456999];
变量名称=['foo','bar','zzz'];
var result=ids.map(函数(currentId,索引){
返回{
id:currentId,
名称:名称[索引]
};
});

控制台日志(结果)下面的代码使用了
foreach
,但您不需要处理它。我希望这对你有用

ids=[123456789999];
名称=['foo','bar','zab','zzz'];
结果=ids.map(函数(u,i){
返回{id:ids[i],name:names[i]}
});

console.log(result)
下面的代码使用了
foreach
,但您不需要处理它。我希望这对你有用

ids=[123456789999];
名称=['foo','bar','zab','zzz'];
结果=ids.map(函数(u,i){
返回{id:ids[i],name:names[i]}
});

console.log(result)
这或多或少也是我的答案。只是想为OP添加一条免责声明,让OP感到厌倦的是,对于两个独立的数组,一个数组的长度可能与另一个数组的长度不相等,在这种情况下,您可能最终无法将每一对都创建为文字,或者更糟的是,
ids
数组的元素多于
名称
,这会导致索引超出范围的错误。这或多或少也是我的答案。只是想为OP添加一条免责声明,让OP感到厌倦的是,对于两个独立的数组,一个数组的长度可能与另一个数组的长度不相等,在这种情况下,您可能最终无法将每一对都创建为文字,或者更糟的是,
ids
数组的元素多于
名称
,这将导致索引超出范围的错误。