在对象数组中对每个对象的键进行排序

时间:2018-12-02 20:32:17

标签: javascript sorting

我有以下对象数组:

var wordSpecsArr = [{a: 2, b: 2},{a: 1, b: 1, c: 1, d: 1},{b: 2, a: 2},{d: 2, a: 2},{a: 2, b: 2}]

,我想按键对每个对象进行排序,使其变为:

var wordSpecsArr = [{a: 2, b: 2},{a: 1, b: 1, c: 1, d: 1},{a: 2, b: 2},{a: 2, d: 2},{a: 2, b: 2}]

我尝试了以下代码:

//sort keys
wordSpecsArr.forEach((obj) => {
    var ordered = {};
    Object.keys(obj).sort().forEach((key) => {
        ordered[key] = obj[key]
    });
});

但是没有用。我真的很感谢您的帮助

1 个答案:

答案 0 :(得分:0)

尝试一下。

var wordSpecsArr = [{a: 2, b: 2},{a: 1, b: 1, c: 1, d: 1},{b: 2, a: 2},{d: 2, a: 2},{a: 2, b: 2}]


var wordSpecsArr = [{a: 2, b: 2},{a: 1, b: 1, c: 1, d: 1},{a: 2, b: 2},{a: 2, d: 2},{a: 2, b: 2}]

//sort keys
let op =[];
wordSpecsArr.forEach((obj) => {
    let ordered = {};
    Object.keys(obj).sort().forEach((key) => {
        ordered[key] = obj[key]
    });
   op.push(ordered)
});

console.log(op)