簡體   English   中英

檢查重復項時如何忽略數組中的空值-Javascript

[英]How to ignore empty values in array when checking for duplicates - Javascript

在Javascript中,我正在測試兩個數組以檢查重復項。 我在ES6中找到了一種不錯的簡單方法

 function hasDuplicates(MyArray) { return new Set(MyArray).size !== MyArray.length; } 

但是,我希望它忽略數組中的空值,因為它會將空值視為重復項。

我的數組如下所示:[“名稱0”,“名稱”,“名稱2”,“”,“”]

我怎樣才能做到這一點?

只需在return語句之前添加此行

var tmpArray = MyArray.filter( s => (s || !isNaN(s)) && String(s).length > 0 );

並在return語句中使用此數組

return new Set( tmpArray ).size !== tmpArray.length;

或者只是延長同一行以檢查重復項

return MyArray.filter( ( s, i, arr ) => 
         (s || !isNaN(s)) && String(s).length > 0 
           && arr.indexOf( s, i + 1 ) != -1 ).length > 0; 

如果有重復,則返回true

如果要返回dupe數組作為結果,這是我對您的問題的解決方案:

let data = ["101", "", "", "666"];
let compData = ["", "", "666", "101"];
var result = data.filter((value) => {
    if(value !="" && compData.indexOf(value) > -1)
        return value;
})   

輸出:

["101", "666"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM