簡體   English   中英

如何將對象轉換為對象數組

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

我有以下對象:

let categories = {
  "Asset Type": ["appliances", "electronics"],
  "Asset Availability": ["in stock"]
}

我需要將其轉換為以下結構:

[
   {
     "name": "Asset Type",
     "values": ["Appliances", "Electronics"]
    }, 
    {
      "name": "Asset Availability",
      "values": ["In Stock"]
    }
]

使用Object.entriesarray.prototype.map和一些destructuring

 var categories = { "Asset Type": ["appliances", "electronics"], "Asset Availability": ["in stock"] }; var res = Object.entries(categories).map(([name, values]) => ({name, values})); console.log(res); 

 const categories = { "Asset Type": ["appliances", "electronics"], "Asset Availability": ["in stock"] } const toArray = obj => Object.keys(obj).reduce((acc, key) => [...acc, {name: key, values: obj[key]}], []) console.log(toArray(categories)); 

我最喜歡的方法是:

  1. 在對象的每個鍵上調用map函數。
  2. 創建一個新對象,將屬性“name”設置為鍵,將值設置為相應的值

請注意,密鑰必須在此方法中是唯一的(無論如何應該是這樣):

var categories = {
  "Asset Type": ["appliances", "electronics"],
  "Asset Availability": ["in stock"]
 };

var res = Object.keys(categories).map(key => ({
      name: key,
      values: categories[key]
    });
);

console.log(res);

試試這樣==>

var obj = {
    "categories":
         {
          "Asset Type": ["appliances", "electronics"],
          "Asset Availability": ["in stock"]
         },
};


var categories = [];
for(let p in obj.categories) {

    categories.push({
        name: p,
        values : obj.categories[p]
    });
}

console.log(categories);

你可以嘗試這樣的東西或使用地圖功能有很多方法

let obj = {
    "categories":
        {
            "Asset Type": ["appliances", "electronics"],
            "Asset Availability": ["in stock"]
        }

}
let categories=[];
Object.keys(obj.categories).forEach(key=>{
    categories.push({"name":key,"value":obj.categories[key]});
});
console.log(categories);

暫無
暫無

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

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