为了账号安全,请及时绑定邮箱和手机立即绑定

改变JS中对象的结构

改变JS中对象的结构

繁花如伊 2022-05-26 16:43:08
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个小时,在此先感谢会帮助我的人
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

你很接近,但是当你需要做一个对象的键/值对时,你正在创建一个字符串。计算密钥可以用方括号围绕密钥完成:


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]

}


查看完整回答
反对 回复 2022-05-26
?
ITMISS

TA贡献1871条经验 获得超8个赞

替代方法:在(参见MDN )reducer的条目上使用 aObject


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


查看完整回答
反对 回复 2022-05-26
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号