Javascript JS-数组中的重复元素
好吧,我无法解释我想做什么。但我可以解释whit代码 我有这个阵列:Javascript JS-数组中的重复元素,javascript,angularjs,Javascript,Angularjs,好吧,我无法解释我想做什么。但我可以解释whit代码 我有这个阵列: var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"},{name:"John",lastname:"Doe"}] 数组包含两个重复的元素,我想要一个只显示一次元素重复的函数 应用函数时,这将是数组的结果 var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bi
var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"},{name:"John",lastname:"Doe"}]
数组包含两个重复的元素,我想要一个只显示一次元素重复的函数
应用函数时,这将是数组的结果
var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"}]
您可以使用lodash库,它提供了许多数组/对象和字符串函数
var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"},{name:"John",lastname:"Doe"}]
_.uniqWith(array, _.isEqual);//[{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"}]
上面的代码将检查每个对象的深度相等性,并创建一个唯一的数组。
文档:您可以用老式的javascript函数实现它
var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"},{name:"John",lastname:"Doe"}]
var names = [];
array = array.filter(function (person) {
var fn = person.name + '-' + person.lastname;
if (names.indexOf(fn) !== -1) {
return false;
}
else {
names.push(fn);
return true;
}
});
console.log(array);
// [{"name":"John","lastname":"Doe"},{"name":"Alex","lastname":"Bill"}]
最简单的方法是使用下划线
var array = [{name:"John",lastname:"Doe"},{name:"Alex",lastname:"Bill"},{name:"John",lastname:"Doe"}]
array = _.uniq(array , false, function(p) {
return p.name;
});
使用unique to achive尝试进行深度比较。Lodash和下划线的可能副本是不同的库。@谢谢您的输入。我认为两者只是名称不同,但在功能方面做相同的工作。