需求:如果nodeArray中包含了deptType和roleId完全相同的对象,则判断为重复
方法:
校验 查找重复值所对应的索引但是上述方法所用的循环太多,一旦数组过大,算法复杂度太高,效率低。由于只要判断出当前数组中是否有重复对象,将每一个对象中的value取出,拼成的字符串肯定是唯一的,将获取的字符串存到一个新的对象中,如果新对象中包含此字符串,则重复;否则,继续循环原数组去取下一个对象拼成的字符串...
let nodeArray = [
{deptType: 1, roleId: 10},
{deptType: 1, roleId: 1000},
{deptType: 1, roleId: 100},
{deptType: 2, roleId: 1000},
{deptType: 2, roleId: 1000}
];
function verfiyNode(data) {
let map = {};
for(var i = 0;i < data.length;i++) {
let key = data[i].deptType + '-' + data[i].roleId;
let value = map[key];
if (value) {
return false;
}
map[key] = key;
}
return true;
}
网友评论