[英]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.