js实现⼆维数组去重
数组中包含数组,怎么去重?
⽐如数组:[[{a:1},{a:1,b:2}],[{a:1}],[{a:1},{a:1,b:2}]]
let arr = [[{a:1},{a:1,b:2}],[{a:1}],[{a:1},{a:1,b:2}]]
function getUnique(array){
let obj = {}
js 二维数组return array.filter((item, index) => {
// 防⽌key重复
let newItem = item + JSON.stringify(item)
return obj.hasOwnProperty(newItem) ? false : obj[newItem] = true
})
}
getUnique(arr)
hasOwnProperty() ⽅法会返回⼀个布尔值,指⽰对象⾃⾝属性中是否具有指定的属性(也就是是否有指定的键),
所有继承了  的对象都会继承到 hasOwnProperty ⽅法。这个⽅法可以⽤来检测⼀个对象是否含有特定的⾃⾝属性;和  运算符不同,该⽅法会忽略掉那些从原型链上继承到的属性。
下⾯的例⼦检测了对象 o 是否含有⾃⾝属性 prop:
o = new Object();
o.prop = 'exists';
function changeO() {
delete o.prop;
}
o.hasOwnProperty('prop');  // 返回 true
changeO();
o.hasOwnProperty('prop');  // 返回 false
遍历⼀个对象的所有⾃⾝属性
下⾯的例⼦演⽰了如何在遍历⼀个对象的所有属性时忽略掉继承属性,注意这⾥  循环只会遍历可枚举
属性,所以不应该基于这个循环中没有不可枚举的属性⽽得出 hasOwnProperty 是严格限制于可枚举项⽬的(如同)。
var buz = {
fog: 'stack'
};
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
alert("this is fog (" + name + ") for sure. Value: " + buz[name]);    }
else {
alert(name); // toString or something else
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。