改变JS中对象的结构

const a = {

  0: { country: "france", date:"sfzef"},

  1: { country: "italie", date:"ttttt"},

  2: { country: "belgique", date:"zzzee"}

}


let obj = {}

for (const property in a) {

  obj = {...obj, `${a[property].country}: ${a[property]}`}

}

我想拥有 :


obj = {

  france: { country: "france", date:"sfzef"},

  italie: { country: "italie", date:"ttttt"},

  belgique: { country: "belgique", date:"zzzee"}

}

我已经尝试了4个小时,在此先感谢会帮助我的人


繁花如伊
浏览 179回答 2
2回答

aluckdog

你很接近,但是当你需要做一个对象的键/值对时,你正在创建一个字符串。计算密钥可以用方括号围绕密钥完成:const a = {  0: { country: "france", date:"sfzef"},  1: { country: "italie", date:"ttttt"},  2: { country: "belgique", date:"zzzee"}}let obj = {}for (const property in a) {  obj = {...obj, [a[property].country]: a[property]}}console.log(obj);如果要避免每次都复制对象,可以这样做:let obj = {}for (const property in a) {  obj[a[property].country] = a[property]}

ITMISS

替代方法:在(参见MDN )reducer的条目上使用 aObjectconst a = {  0: { country: "france", date:"sfzef"},  1: { country: "italie", date:"ttttt"},  2: { country: "belgique", date:"zzzee"}};const b = Object.entries(a)  .reduce( (acc, [key, value]) => ({...acc, [value.country]: value}), {} );console.log(b);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript