给定一个数组,判断是否有重复元素,有则返回true,没有则返回false
- 通过indexOf()判断 从0号位置开始遍历数组到length-1,截取当前位置后的剩余数组,判断当前元素是否在剩余数组中
function isRepetition(data) {
for (let i = 0; i < data.length - 1; i++) { //遍历到倒数第二位
const shortArray = data.slice(i + 1); //截取余下数组
if (shortArray.indexOf(data[i]) !== -1) {
return true;
}
}
return false;
}
- 先排序,然后比较相邻元素是否相等
function isRepetition(data) {
data = data.sort();
for (let i = 0; i < data.length - 1; i++) {
if (data[i] === data[i + 1]) {
return true;
}
}
return false;
}
- 通过object对象辅助,将元素作为属性存在对象中,然后判断对象中是否有这个键值
function isRepetition(data) {
const obj = {};
for (let el of data) {
if (obj[el]) {
return true;
} else {
obj[el] = true;
}
}
return false;
}