var all_name = [{
"name": "A组",
"crpMembersList": []
}, {
"name": "B组",
"crpMembersList": []
}, {
"name": "C组",
"crpMembersList": []
}, {
"name": "D组",
"crpMembersList": []
}, {
"name": "E组",
"crpMembersList": []
}, {
"name": "F组",
"crpMembersList": []
}, {
"name": "G组",
"crpMembersList": []
}, {
"name": "H组",
"crpMembersList": []
}, {
"name": "I组",
"crpMembersList": []
}, {
"name": "J组",
"crpMembersList": []
}];
var init_group = [{
"name": "A组",
"crpMembersList": []
}, {
"name": "B组",
"crpMembersList": []
}, {
"name": "D组",
"crpMembersList": []
}];
var arr = [];
arrr();
function arrr() {
f: for (let n = 0; n < all_name.length; n++) {
for (let i = 0; i < init_group.length; i++) {
if (init_group[i].name === all_name[n].name) {
all_name.splice(n, 1); // 剪切数组原数组会被改变
arrr(); // 重新执行方法
break f; // 中断所有的
}
}
}
}
console.log(all_name[0].name); // C组
发现有了一个更简单的优化方法
var all_name = [{
"name": "A组"
}, {
"name": "B组"
}, {
"name": "C组"
}, {
"name": "D组"
}, {
"name": "E组"
}, {
"name": "F组"
}, {
"name": "G组"
}, {
"name": "H组"
}, {
"name": "I组"
}, {
"name": "J组"
}];
var init_group = [{
"name": "A组"
}, {
"name": "B组"
},{
"name": "C组"
}, {
"name": "D组"
}, {
"name": "H组"
}, {
"name": "I组"
}];
var oIndex = -1;
for (let i = 0; i < all_name.length; i++) {
if (all_name[i].name !== init_group[i].name) {
oIndex = i;
break;
}
continue;
}
console.log(all_name[oIndex].name);
如有建议,欢迎交流
以下为操作逻辑
新建分组的名字,依次为A组,B组,C组,D组......最多到J组;
新建到D组的时候,删除了其中任意一个组别,如:C组;此时组别为A组,B组,D组,即数据init_group
再次新建的时候,组别名字应是其中一个依次缺失的名字,即最终的输出结果:console.log(all_name[0].name); // C组