在遍历数组时创建对象

时间:2019-09-08 19:15:12

标签: javascript arrays object

我正在尝试使用数组中项的值创建一个对象。

const arrOfObj = [
{city: 'Tokyo', country: 'Japan', ...other values},
{city: 'Paris', country: 'France', ...other values}, 
{city: 'London', country: 'UK', ...other values}, 
{city: 'New York', country: 'USA', ...other values}
]

预期对象:

const obj = {
Japan: 'Tokyo', 
France: 'Paris', 
UK: 'London', 
USA: 'New York'
}

你们有什么建议可以有效地实现这一目标吗?所有评论将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:2)

Object.fromEntries可以使用:

2.5396839629975148
0.029025810996245127

答案 1 :(得分:1)

您可以遍历数组并将“国家”值用作属性,并将其值设置为“城市”的值。

   const arrOfObj = [
    {city: 'Tokyo', countryL: 'Japan'},
    {city: 'Paris', countryL: 'France'}, 
    {city: 'London', countryL: 'UK'}, 
    {city: 'New York', countryL: 'USA'}
    ]

    let obj = {};
    arrOfObj.forEach(o => {obj[o.countryL] = o.city});

    console.log(JSON.stringify(obj))

答案 2 :(得分:-2)

使用Array.prototype.reduce

arrOfObj.reduce((acc, { city, country }) => {
  acc[country] = city
  return acc
}, {})

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce