首页 > 解决方案 > 如何使用匹配数组中的每个元素来创建对象?

问题描述

我会构建这个对象结构:

{ product:'example1', description: 'description1', price: 123 }

并且更多的数组有,它会增加。

[
  { product:'example1', description: 'description1', price: 123 },
  { product:'example2', description: 'description2', price: 123 },
  { product:'example3', description: 'description3', price: 123 },
]

我有三个用于迭代的数组,需要匹配你的索引,比如

{"products":elem[0], "description": description[0], "price": price[0]}

我试过这个:

let products = ['Master','Luxe','Simple'];
let ob = []
products.forEach((elem) => {

let price = ['200','340','203'];
let description = ['bla2','bla3','bla4'];

  ob.push({"products":elem, "description": description, "price": price});

description但它在and中创建了一个数组price,我想关联每个元素索引,

但我卡住了。任何人都可以帮助我吗?

标签: javascriptfor-loop

解决方案


forEach 的第二个参数是当前索引。您只需将其传入以按索引选择其他数组元素。例如:

let price = ['200','340','203'];
let description = ['bla2','bla3','bla4'];

products.forEach((elem, index) => {
   ob.push({"products":elem, "description": description[index], "price": price[index]});
})

请注意,如果价格或描述数组的元素较少,这将中断,因此包含检查以确保 array.length 足够大可能是明智之举。


推荐阅读