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