一个对象转成一个数组,数组里多个对象

#对象转数组
遇到一个问题,一个对象{name0:张三,age1:18,name2:李四,age2:58}
这个对象按照属性名的最后数字相同就组成一个对象,0的为一个对象,但属性名变为name,不要0,属性值不变,,后面多个对象再组成一个数组,这个怎么弄


var info = { name0: '张三', age1: 18, name2: '李四', age2: 58 };
let list = [];
for(var key in info){
  var num = key.split("")[key.length - 1]
  var obj = {}
  for(var item in info){
    if(item.indexOf(num) > -1 && !list.filter(cur => cur[item.replace(num,"")] == info[item]).length){
      obj[item.replace(num,"")] = info[item];
    }
  }
  if(JSON.stringify(obj) != '{}'){
    list = [...list, obj];
  }
}
console.log(list)

img

age1,应该是age0吧。示例代码如下

img


    obj = { name0: '张三', age0: 18, name2: '李四', age2: 58 };
    var arr = [];
    for (var attr in obj) {
        var re = /\d+$/
        var index = parseInt(re.exec(attr)[0]);
        var o = arr[index] || {}
        o[attr.replace(re, '')] = obj[attr]
        arr[index] = o;
    }
    console.log(JSON.stringify(arr, null, 2))

img


有帮助或启发麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~