#对象转数组
遇到一个问题,一个对象{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)
age1,应该是age0吧。示例代码如下
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))