簡體   English   中英

將一組對象轉換為一個對象

[英]convert an array of objects to one object of objects

如何將一組對象轉換為一個對象。 我的函數可以正常工作,但是我不想在每個對象之前輸入鍵名。

 myArray = [{
     "name": "ann",
      "y": 191,
      "color": "red"
    },{
     "name": "mary",
      "y": 11,
      "color": "red"
    },{
     "name": "henry",
      "y": 11,
      "color": "red"
    }]

let result = {};
for (let item of seriesTotal) {
  result[item.name] = item;
delete item.name;
}   

我想要這個

myObject = {{
 "name": "ann",
  "y": 191,
  "color": "red"
},{
 "name": "mary",
  "y": 11,
  "color": "red"
},{
 "name": "henry",
  "y": 11,
  "color": "red"
}{

對象是屬性的集合,而屬性是名稱(或鍵)和值之間的關聯。

您可以使用索引作為鍵或屬性名稱。 使用Object.assign創建一個新對象。 使用map和spread語法循環遍歷數組。

 let myArray = [{ "name": "ann", "y": 191, "color": "red" }, { "name": "mary", "y": 11, "color": "red" }, { "name": "henry", "y": 11, "color": "red" }]; let result = Object.assign(...myArray.map((o,i) => ({[i]: o}))); console.log(result); 

Doc: 對象

由於您想要的不是有效的JS對象,因此您將在JS中獲得一個字符串,因此可以使用.replace()

    myArray = JSON.stringify(myArray).replace(/(\[)(.+)(\])/g,"{$2}");

    console.log(myArray);

//{{"name":"ann","y":191,"color":"red"},{"name":"mary","y":11,"color":"red"},{"name":"henry","y":11,"color":"red"}}

但是正如我之前所說,這不是一個JS對象,它只是一個字符串。

暫無
暫無

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

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