簡體   English   中英

在遍歷數組時創建對象

[英]Create object while looping through an array

我正在嘗試使用數組中項的值創建一個對象。

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'
}

你們有什么建議可以有效地實現這一目標嗎? 所有評論將不勝感激。 謝謝。

可以使用Object.fromEntries

 const arrOfObj = [ { city: 'Tokyo' , country: 'Japan' }, { city: 'Paris' , country: 'France' }, { city: 'London' , country: 'UK' }, { city: 'New York', country: 'USA' } ] const obj = Object.fromEntries( arrOfObj.map(o => [o.country, o.city]) ) console.log( obj ) 

您可以遍歷數組,並使用“國家/地區”值作為屬性,並將該值設置為“城市”的值。

   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))

使用Array.prototype.reduce

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

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM