function isRepeatId(arr) { //arr=[100,200,400,200];
if (arr.length == 1) { //若元素数为1一定不重复,直接返回
return false;
}
var hash = {};
for (let i in arr) { //遍历arr
if (hash[arr[i]]) { //hash中arr[i]的位置为undefined(false)
return true;
}
hash[arr[i]] = true; //将hash中arr[i]的位置定义为true
} //再遇到同元素时if会直接返回true
return false; //若无重复元素返回false
}
hash的样子:
个人实例:
在添加章节时调用该方法可以阻止添加重复章节
//计数器
var repeatNumber = 0;
//添加一行数据
function addChapter(chapterName) {
//检测是否已有章节
repeatId[repeatNumber] = chapterName; //添加章节之前查重
if (isRepeatId(repeatId)) { //如果返回true则章节重复
alert('章节重复!');
return; //停止添加
} else {
repeatNumber++; //计数器+1
}
}