用属性分隔对象?

时间:2017-02-03 11:44:53

标签: javascript

我有像

这样的对象
obj = {
   a0: 1,
   b0: 2,
   b1: 3,
   a1: 4
}

我希望将此对象设为数组,如图所示

obj1 = [
       {a0: 1, b0: 2},
       {a1: 4, b1: 3}
]

以相同编号结尾的组属性。请帮帮我

1 个答案:

答案 0 :(得分:3)

您可以使用键的编号作为索引并构建新对象(如果不存在)。然后将值应用于属性。

var object = { a0: 1, b1: 3, a1: 4, c2: 5 },
    grouped = Object.keys(object).reduce(function (result, key) {
        var index = key.match(/\d+$/);
        result[index] = result[index] || {};
        result[index][key] = object[key];
        return result;
    }, []);

console.log(grouped);