怎么按照顺序依次循环得出第二个数组,长度不是固定的,是有多有少的
题主要的代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~
<script>
var arr = [{ a0: 2 }, { a0: 5 }, { a1: 8 }, { a1: 7 }, { a2: 10 }, { a2: 2 }, { a4: 5 }, { a4: 9 }]
var kvKeyIndex = {}, key, keys = [];
arr.forEach((item, index) => {//遍历收集所有key和对应的key下标
key = Object.keys(item)[0];
if (!kvKeyIndex[key]) {
kvKeyIndex[key] = [];
keys.push(key);
}
kvKeyIndex[key].push(index);
});
var newarr = [];
kvKeyIndex[keys[0]].forEach((indexValue, index) => {
var item = {};
keys.forEach(k => {
item[k] = arr[kvKeyIndex[k][index]][k];
});
newarr.push(item)
});
console.log(JSON.stringify(newarr))
</script>
组合的规律是什么
a1与a0数量相等吗?
var a = [{a0:1},{a0:2},{a1:0},{a1:3}];
var b = []
for(var i = 0;i<a.length;i++){
for(var key in a[i]){
var blen = b.length
var j=0;
for(;j<blen;j++){
if(b[j][key] === undefined){
b[j][key]=a[i][key];
break;
}
}
if(j==blen){
var obj = {};
obj[key] = a[i][key]
b.push(obj)
}
}
}
console.log(b)