[英]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.