如何在节点js中对数组进行排序

我有以下数组结构。


{

    "a": "aa",

    "**b**": {

        "**b**": "bb",

        "c": 1

    },

    "d": "d"

},

我想显示如下的最终结果。


{ "a": "aa",

        "b": "bb",

        "c": 1

    "d": "dd"

},

我正在尝试使用下面的代码,但它没有按预期工作。


let finalArr = [];

  for (let [key, value] of Object.entries(resObj)) {

    if (typeof value === 'object') {

      for (let [keyInternal, valueInternal] of Object.entries(value)) {

        valueInternal.map(arrValue => {

          const finalObj = {

            a: '',

            b: '', 

            c : '',       

            d : ''

          };

          finalObj.a = key;

          finalObj.b = arrValue[1].b;

          finalObj.c = arrValue[1].c;

          finalObj.d = keyInternal;

          finalArr.push(finalObj);

        });

      }

    }

  }


UYOU
浏览 119回答 3
3回答

小唯快跑啊

您可以使用递归来扁平化您的对象,例如let obj = {  "a": "aa",  "**b**": {    "**b**": "bb",    "c": 1,  },  "d": "d",  "*e*": {    "**e**": {      "e": 2    }  }}let flatten = (obj, final = {}) => {  Object.entries(obj).forEach(([key, value]) => {    if (typeof value === 'object') {      flatten(value, final)    } else {      final[key] = value    }  })  return final}console.log(flatten(obj))

元芳怎么了

在条目上使用forEach并构建新对象。如果值是对象,则用于Object.assign展平。const obj = {  a: "aa",  b: {    b: "bb",    c: 1  },  d: "d"};const flatten = obj => {  const res = {};  Object.entries(obj).forEach(([key, value]) => {    if (typeof value === "object") {      Object.assign(res, value);    } else {      res[key] = value;    }  });  return res;};console.log(flatten(obj));

莫回无

我已经使用以下方式解决了它。         let finalArr = [];          for (let [key, value] of Object.entries(resObj)) {            if (typeof value === 'object') {              for (let [keyInternal, valueInternal] of Object.entries(value)) {                valueInternal.map(arrValue => {                  const finalObj = {                    a: '',                    d: ''                  };                  finalObj.a= key;                  finalObj.d= keyInternal;                  var tempobj = {...finalObj,...arrValue};                  finalArr.push(tempobj);                });              }            }           }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript