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