1.判斷數組是否有重復,并返回重復的index
var ary = new Array("1", "11", "33", "33");
for (var i = ary.length-1; i >= 0; i--) {
if (ary.indexOf(ary[i]) != ary.lastIndexOf(ary[i])) {
console.log("下標為:"+i);
console.log("數組中有重復元素:" + ary[i]);
}
}
indexOf是從前向后查詢的index,lastIndexOf是從后向前查詢的index,但是二者返回索引都是從前開始數數和計算的。
當有重復的時候兩個值會不相等。
2.es6判斷數組是否重復,不需要index的時候可以這樣做
var arr=[1,2,3,4,5,2,3];
if((newSet(arr)).size!=arr.length){
alert("數組有重復值")
}
3.es6數組去重方法
function dedupe(array){
return Array.from(newSet(array));
}
和上面很相似,newSet可以去重,from把set轉成數組類型。