簡體   English   中英

在 JS 中更改對象的結構

[英]Change the structure of an object in 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 個小時,提前感謝幫助我的人

當您需要執行對象的鍵/值對時,您已經接近了,但是您正在創建一個字符串。 計算鍵可以用鍵周圍的方括號來完成:

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

替代方法:在Object的條目上使用reducer (參見MDN

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

暫無
暫無

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

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