数组一与数组二名字相同
时候 对应赋值
/**
* res {all:{},split[] }
*/
let data = res;
//思路 把res返回的name 都过滤一遍 去掉.pdf 变成跟 this.tabData.name相同的字符串
data.split.forEach(element => {
element.name = element.name.replace(".pdf", "");
});
//根据 this.tabData.name== data.split.[index]的name 相同。 就 res.data赋值split名字相同的数据等于this.tabData.name相同的pdfdata中去
for (let index = 0; index < data.split.length; index++) {
this.tabData.forEach(tabDataindex => {
if (tabDataindex.label == data.split[index].name) {
tabDataindex.pdfdata = data.split[index];
}
});
}
// 如果data.all 里面有数据 push 多一个到最后 思路同上
if (data.all) {
data.all.forEach(element => {
element.name = element.name.replace(".pdf", "");
this.tabData.push({
label: element.name,
pdfdata: element,
name: element.name
});
});
}
单个数组内判定重复
let Setjyqarr=[ {jyjid: 1, jyqid: 1},
{jyjid: 1, jyqid: 1},
{jyjid: 1, jyqid: 2},
{jyjid: 2, jyqid: 1}]; for (let index = 0; index < Setjyqarr.length; index++) {
for (let j=index+1; j < Setjyqarr.length; j++) {
if (JSON.stringify(Setjyqarr[index]) == JSON.stringify(Setjyqarr[j])) {
console.log("存在重复加油枪编号 请重新输入!");
}
}
}
单个数组对象里面去重
let Setjyqarr=[ {jyjid: 1, jyqid: 1},
{jyjid: 1, jyqid: 1},
{jyjid: 1, jyqid: 2},
{jyjid: 2, jyqid: 1}]; for (let index = 0; index < Setjyqarr.length; index++) {
for (let j=index+1; j < Setjyqarr.length; j++) {
if (JSON.stringify(Setjyqarr[index]) == JSON.stringify(Setjyqarr[j])) {
console.log("存在重复加油枪编号 请重新输入!");
}
}
}
4单个数组里面 合并重复addressid 的ljjycls
原来
33333333 [ { addressid: 1, ljjycls: 1 },
{ addressid: 1, ljjycls: 1 },
{ addressid: 2, ljjycls: 2 },
{ addressid: 3, ljjycls: 1 } ]
效果
777777 [ { addressid: 1, ljjycls: 2 },
{ addressid: 2, ljjycls: 2 },
{ addressid: 3, ljjycls: 1 } ]
let sumarr=[]
let listdataArr=[]
if (List && List.length != 0) {
for (let index = 0; index < List.length; index++) {
for (let j = index + 1; j < List.length; j++) {
if (List[index].addressid == List[j].addressid) {
sumarr.push({ addressid: List[index].addressid, ljjycls: List[index].ljjycls + List[j].ljjycls });
}
}
}//合并相同的到新数组
console.log(4444, sumarr);
for (let index = 0; index < List.length; index++) {
const findIndex = listdataArr.findIndex(item => {
return item.addressid === List[index].addressid;
});
if (findIndex < 0) {//如果没有符合条件的元素返回 -1
listdataArr.push(List[index]);
}
}//原数组重复去重
console.log(6666666, listdataArr);
if (sumarr && sumarr.length != 0) {
listdataArr.map((items, index) => {
sumarr.map((item, i) => {
if (items.addressid == item.addressid) {
listdataArr[index] = Object.assign(item);
}
});
});
}
console.log(777777, listdataArr);
}
优化版本
let restRes = []; //建一个数组把原数组res.data去重合并相同的name的value
/**
* 原来 res data =[ { name: 1, value: 1 },{ name: 1, value: 1 },{ name: 2, value: 2 },{ name: 3, value: 1 } ]
*/
res.data.forEach(element => {
let index = restRes.findIndex(v => v.name == element.name);
if (index == -1) {
restRes.push({ name: element.name, value: element.value });
} else {
restRes[index].value += element.value;
}
});
res.data = restRes;
/**
* 三步处理后 res data =[ { name: 1, value: 2 },{ name: 2, value: 2 },{ name: 3, value: 1 } ]
单个数组分组
let list=[{ ID: 1,name:"A"},
{ ID: 1,name:"B"},
{ ID: 2,name:'C'},
{ ID: 2,name:'D'},
{ ID: 2,name:'E'},
{ ID: 3,name:'G'},
{ ID: 3,name:'F'},
{ ID: 4,name:'H'},
{ ID: 4,name:'I'},
{ ID: 7,name:'J'},
{ ID: 12,name:'K'}];
=> arr【
[{ ID: 1,name:A},{ ID: 1,name:B}],
[{ ID: 2,name:C},{ ID: 2,name:D},{ ID: 2,name:E}],
[{ ID: 3,name:F},{ ID: 3,name:G}],
[{ ID: 4,name:H},{ ID: 4,name:I}],
[{ID: 7,name:J}],
[{ ID: 12,name:K}],
】
let data = [];
for(var i = 0; i < list.length; i++) {
if(!data[list[i].ID]) {
var arr = [];
arr.push(list[i]);
data[list[i].ID] = arr;
}else {
data[list[i].ID].push(list[i])
}
}console.log(data);