我正在尝试检查以下数组中的重复项,只是如果存在重复项,我想返回true或false。
var array = ["Saturday", "Sunday", "Monday", "Tuesday", "Saturday" ];
for ( var i = 0; i < array.length; i++){
for (var j = i+1; j< array.length; j++){
if (array [i] === array [j]){
console.log(array[i]);
}
}
}
我尝试了上面的方法,它仅给出数组中一项的结果,而不是逗号分隔的结果。如何以最佳方式为逗号分隔的数组编写重复检查功能?
Array(10)
0: "test3,tier 1,test,test2
"1: "test3,tier 1,test,test2
"2: "test3,tier 1,test,test2
"3: "test3,tier 1,test,test2
"4: "test3,tier 1,test,test2
"5: "test3,tier 1,test,test2
"6: "test3,tier 1,test,test2
"7: "test3,tier 1,test,test2
"8: "test3,tier 1,test,test2
"9: "test3,tier 1,test,test2
"length: 10
__proto__: Array(0)
答案 0 :(得分:1)
Set
中的项目将始终为唯一,因为它仅保留您输入的每个值的一个副本。这是一个使用此属性的函数:
function hasDuplicates(iterable) {
return new Set(array).size !== iterable.length;
}
// Demo
var array = ["Saturday", "Sunday", "Monday", "Tuesday", "Saturday" ];
console.log(hasDuplicates(array))
// Returns True if there is duplicates
// Otherwise return false
Set(iterable).size
将返回该集合中唯一元素的计数,而iterable.length
是原始数组中所有元素的计数。
编辑#1
要仅检查第一项是否存在重复项,可以使用类似的内容
var array = ["Saturday", "Saturday", "Sunday", "Monday", "Tuesday" ];
console.log(array.indexOf(array[0] , 1) === -1 ? "No duplicates" : "Has duplicate" );
答案 1 :(得分:0)
// Check duplicates in upload data excel
checkDuplicates(arr) {
if (arr.length > 1) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i].split(',')[0] === arr[j].split(',')[0]) {
return true;
} else {
return false;
}
}
}
} else {
return false;
}
}