为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2022-05-22 19:17:12
我有以下数组结构。{    "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);        });      }    }  }
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您可以使用递归来扁平化您的对象,例如


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))


查看完整回答
反对 回复 2022-05-22
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

在条目上使用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));


查看完整回答
反对 回复 2022-05-22
?
莫回无

TA贡献1865条经验 获得超7个赞

我已经使用以下方式解决了它。


         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);

                });

              }

            } 

          }


查看完整回答
反对 回复 2022-05-22
  • 3 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信