[英]How to remove duplicates from an array using forEach method in javascript
我有一个数组,其中有对象和字符串,现在我的目标是从字符串和对象中过滤所有重复项。
不明白的请留言
const data = [
'apple',
'mango',
'orange',
'grapes',
'apple',
'mango',
{
name: 'Mark',
age: 28
},
{
name: 'Mark',
age: 28
},
{
name: 'James',
age: 28
},
'sapota',
'gaua',
{
name: 'Williams',
age: 26
},
{
name: 'John',
age: 24
},
'gaua'
]
console.log(data)
假设您没有循环数据结构,您可以使用一种方法
function removeDup(arr){
let known = [];
return arr.filter(elem => {
let str = JSON.stringify(elem); // Get string of whatever item we are dealing with
if(!known.includes(str)){ //Check to see if we have seen this item before
known.push(str); //If we havnt add it to seen list
return true;
}
return false;
});
}
显然,这仅限于 JSON.stringify 可以处理的任何内容。 此外,此方法假定在如下数组中: [{name: 'name'}, 'name']
这两个名称是不同的东西,并且都将被返回。 如果您想将它们视为重复项,请告诉我
请注意,这不使用 forEach 循环,但可以很容易地更改为使用一个循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.