项目详情数组 {项目名称、项目批次、项目批次是否变化、机构名称、线索编号、发现时间}
projectInfoList:[
{programName:测试项目1,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1,programNum:201109010011,findTime:2022-09-09},
{programName:测试项目1,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1,programNum:201109110013,findTime:2022-09-09},
{programName:测试项目1,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1,programNum:201109010014,findTime:2022-09-09},
{programName:测试项目2,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1,programNum:201109010015,findTime:2022-09-09},
{programName:测试项目2,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1,programNum:201109010016,findTime:2022-09-09},
{programName:测试项目3,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1,programNum:201109010012,findTime:2022-09-09},
{programName:测试项目3,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1,programNum:201109010017,findTime:2022-09-09},
{programName:测试项目3,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1,programNum:201109010018,findTime:2022-09-09}]
项目数组 {项目名称}
projectInfoList:[
{programName:测试项目1},
{programName:测试项目2},
{programName:测试项目3}]
项目批次数组 {项目名称、项目批次、是否发现变化、机构名称}
projectBatchList:[
{programName:测试项目1,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1},
{programName:测试项目1,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1},
{programName:测试项目2,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1},
{programName:测试项目2,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1},
{programName:测试项目3,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1},
{programName:测试项目3,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1}]
想要将上述项目详情数组进行去重,组成新数组:
1.从“项目详情数组”获取“项目数组”,希望组成新数组项目数组如下:
projectInfoList:[
{programName:测试项目1},
{programName:测试项目2},
{programName:测试项目3}]
2.从“项目详情数组”获取“项目批次数组”,希望组成新数组如下:
projectBatchList:[
{programName:测试项目1,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1},
{programName:测试项目1,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1},
{programName:测试项目2,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1},
{programName:测试项目2,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1},
{programName:测试项目3,projectBatch:项目批次1,isSXBH:1,organizationName:机构名称1},
{programName:测试项目3,projectBatch:项目批次2,isSXBH:1,organizationName:机构名称1}]
1.从“项目详情数组”获取“项目批次数组”
for (var m = 0; m < projectInfoList.length; m++) {
for (var n = m + 1; n < projectInfoList.length; n++) {
if (projectInfoList[m].projectName == projectInfoList[n].projectName && projectInfoList[m].issueNumber == projectInfoList[n].issueNumber) {
console.log('测试22', projectInfoList[m], projectInfoList[n]);
projectInfoList.splice(n, 1);
}
}
}
2.
function newArrFn (arr) {
let newArr = []
let map = new Map()
for(let i = 0;i<arr.length;i++){
// 如果 map里面不包含,就设置进去
if (!map.has(arr[i])) {
map.set(arr[i], true)
newArr.push(arr[i])
}
};
return newArr
}
newArrFn(projectInfoList);
最后新数组中数据是重复的
项目详情集合:projectInfoList
项目集合:projectList
项目批次集合:projectBatchList
var newProjectList = projectList.map(i => ({
programName: i.programName,
proinfos: projectInfoList.filter(j => j.programName === i.programName)
}))
console.log('newProjectList ', newProjectList)
第二个没看懂按什么合并
参考https://www.cnblogs.com/xiangsj/p/9083300.html
let log = console.log.bind(console);
let person = [
{id: 0, name: "小明"},
{id: 1, name: "小张"},
{id: 2, name: "小李"},
{id: 3, name: "小孙"},
{id: 1, name: "小周"},
{id: 2, name: "小陈"},
];
let obj = {};
person = person.reduce((cur,next) => {
obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
return cur;
},[]) //设置cur默认类型为数组,并且初始值为空的数组
log(person);
根据索引编号 使用Array.from(new Set)