JSONArray查找重复对象

待去重对象

需求:如果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;

}

你可能感兴趣的:(JSONArray查找重复对象)