首页 > 解决方案 > 如何在 javascript 中更改数据方案?

问题描述

我有如下数据;

{
  "house": {
    "subname1": {
      "active": true,
      "address": "123 street"
    },
    "subname2": {
      "active": true,
      "address": "123 street"
    }
  },
  "business": {
    "example": {
      "active": true,
      "address": "123 street"
    }
  }
}

我想改成这个;

{"type" : "house", "subtype" : "subname1", "active" : true, "address" : "123 street"},
{"type" : "house", "subtype" : "subname2", "active" : true, "address" : "123 street"},
{"type" : "business", "subtype" : "example", "active" : true, "address" : "123 street"}

我用过洛达什。我不确定这是正确的方法。又不知道怎么加

    _.map(formData, (r,v,k) => {
      _.map(r, (re,key,ke) => {
        _.map(re, (a,b,c) => {

        newObj["type"] = v;
        newObj["name"] = key;
        //need to be added c object more
        })
      })
    })

以下是我到目前为止所取得的成就。

{
  name: "example",
  type: "business"
}

标签: javascriptjson

解决方案


您可以尝试以下

var obj = {"house":{"subname1":{"active":true,"address":"123 street"},"subname2":{"active":true,"address":"123 street"}},"business":{"example":{"active":true,"address":"123 street"}}};

var result = [];
Object.keys(obj).forEach((type) => {
  Object.keys(obj[type]).forEach((subtype) => {
    result.push({
        type : type,
        subtype : subtype,
        ...obj[type][subtype]
    });
  });  
});

console.log(result);


推荐阅读