【发布时间】:2018-07-31 09:53:24
【问题描述】:
我正在尝试检查以下数组中的重复项,只是如果存在重复项,我想返回 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)
【问题讨论】:
-
哦,所以你的真实数组中有字符串值,其中包含逗号,它们只是字符串,逗号没有什么特别的 - 那么你想准确测试什么?代码将检查并输出重复项(即所有 10 个都相同)
-
如果不重复,我只想返回 true,如果存在重复则返回 false
-
所以,在你
console.log的地方返回 true ...在循环之外返回 false -
new Set(array).size === array.length如果所有数组项都是唯一的,则为 true -
a.map(item=> item .split(',').map(child => child)).map(item => new Set(item).size === item.length)尝试这样做可能会解决您的问题
标签: javascript jquery arrays duplicates logic