数组平均分结果是多个数组的集合
输入:
[
{ key1: 1, name1: 2 },
{ key1: 3, name1: 4 },
{ key1: 1, name1: 2 },
{ key1: 3, name1: 4 }
]
结果:
[
[
{ key1: 1, name1: 2 },
{ key1: 3, name1: 4 }
],
[
{ key1: 1, name1: 2 },
{ key1: 3, name1: 4 }
]
]
代码如下
//num是平均分几份
function dealArrAvgFun(arr, num = 1) {
if (num == 1) return arr;
let newArr = [];
for (let i in arr) {
newArr[i % num] == undefined && (newArr[i % num] = []);
newArr[i % num].push(arr[i]);
}
return newArr;
},
数组平均分,在对应后创建key值,添加对象
输入
[
{ key1: 1, name1: 2 },
{ key1: 3, name1: 4 },
{ key1: 1, name1: 2 },
{ key1: 3, name1: 4 }
]
结果
[
{ key1: 1, name1: 2, key2: 2, name2: 3 },
{ key1: 3, name1: 4, key2: 2, name2: 3 }
]
代码如下
//num是平均分几份
function dealArrMergeObj(body, num = 1) {
if (num == 1) return body;
let bodyData = [];
let headerData = [];
for (let i = 0; i < body.length; i += num) {
let obj = {};
for (let j = 0; j < num; j++) {
if (!body[i + j]) break;
obj = Object.keys(body[i + j]).reduce((pre, e) => {
let bodyChild = body[i + j][e];
if (typeof bodyChild == 'object') {
bodyChild = JSON.stringify(bodyChild);
} else {
bodyChild = String(bodyChild);
}
// console.log(typeof body[i + j][e]);
pre[e + j.toString()] = bodyChild;
//头部数组处理,处理一次即可
if (i == 0) {
headerData.push(e + j.toString());
}
return pre;
}, obj);
//保证样式的
if (i == 0) {
headerData.push('empty' + j.toString());
}
}
bodyData.push(obj);
}
return { headerData, bodyData };
},