如何将对象转换为对象数组

Dol*_*ria 2 javascript

我有以下对象:

let categories = {
  "Asset Type": ["appliances", "electronics"],
  "Asset Availability": ["in stock"]
}
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为以下结构:

[
   {
     "name": "Asset Type",
     "values": ["Appliances", "Electronics"]
    }, 
    {
      "name": "Asset Availability",
      "values": ["In Stock"]
    }
]
Run Code Online (Sandbox Code Playgroud)

Fal*_*aly 7

使用Object.entries,array.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);
Run Code Online (Sandbox Code Playgroud)

  • 我发现这个问题有一个重复的目标,但这个答案比任何其他答案更优雅. (2认同)
  • 如果没有(),javascript会将{}解释为块,而不是对象 (2认同)