简体   繁体   English

将数组添加到javascript中的对象数组

[英]Add an array to array of objects in javascript

I have two variables which is an array and array of object, I want to add the value of first variable(distance) to second variable(list)我有两个变量,它是一个数组和对象数组,我想将第一个变量(距离)的值添加到第二个变量(列表)

The following works fine, but I want to know if there's any other method to get some result.以下工作正常,但我想知道是否有其他方法可以获得一些结果。

 let distance = [100,200,300] let list = [ {"city" : "paris"} , {"city" : "london"} , { "city" : "barcelona" }] for(let i = 0; i < distance.length;i++){ let listDistance = list.map(el => { return Object.assign({}, el, {distance:distance[i++]}) return el }); console.log(listDistance) } // output [ {city : paris , distance : 100 } , {city : london , distance : 200 } , { city : barcelona , distance : 300 }]

Try this:尝试这个:

 let array1 = [100, 200, 300] let array2 = [{ "city": "paris" }, { "city": "london" }, { "city": "barcelona" }] let res = array2.map((value, index) => { return { ...value, distance: array1[index] } }) console.log(res);

Like this?像这样?

 let distance = [100,200,300] let list = [ {"city" : "paris"} , {"city" : "london"} , { "city" : "barcelona" }] list.forEach((city,i) => city.distance = distance[i]) console.log(list)

Older browsers较旧的浏览器

 let distance = [100,200,300] let list = [ {"city" : "paris"} , {"city" : "london"} , { "city" : "barcelona" }] list.forEach(function(city,i) { city.distance = distance[i] }) console.log(list)

If you need a new Array you can use map:如果你需要一个新的数组,你可以使用 map:

 const distance = [100,200,300] let list = [ {"city" : "paris"} , {"city" : "london"} , { "city" : "barcelona" }] let distList = list.map((city,i) => ({ ...city, distance : distance[i]}) ) console.log(distList)

Try this尝试这个

for(let i = 0; i < distance.length; i++)
{
   list[i].distance = distance[i];
}
const listWithDistances = list.map(
  (item, index) => ({ ...item, distance: distance[index] })
)

This has the same result of your example of returning a new Array of new Object s.这与返回新Object的新Array示例的结果相同。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM