如何使用来自两个数组的键创建JS对象?

时间:2018-08-08 15:43:54

标签: javascript arrays object

我有两个数组,一个是日期,另一个是价格。我需要创建一个包含这两个交集的JS对象。

它应该看起来像这样:

{ date: "2018-01-01", price: 82 }

{ date: date[0], price: price[0]}

... 250行。

我知道我可以使用Object.assign.apply组合对象,但是随后我得到一个看起来像这样的对象:

{"2018-01-01": 82 } 

没有按键。那么如何格式化密钥?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以.map()...将其散布成如下组合:

let dates = [{date:'20-jan-2017'},{date:'20-dec-2016'}];
let prices = [{price:200}, {price:300}]

let combined = dates.map((date, key) => { return {...date, ...prices[key]}})

console.log(combined);

答案 1 :(得分:0)

如果数组的长度相同(我认为它们是相同的),则可以对其进行迭代,然后将两个元素都添加到对象数组中。

let output = [];
for(let i = 0; i < arrLen; i++){
  output.push({
    date: arr1[i],
    price: arr2[i]
  });
}

答案 2 :(得分:0)

假设两个数组的大小都相同

const prices = [...] // an existing array
const dates = [...] // another array with the same length
const newArray = dates.map((date, i) => ({ date, price: prices[i] }))