1.indexOf方法实现
indexOf获取到数组元素下标,如果元素不存在,则会返回-1
思路:定义一个空数组,用来存放不重复的元素;循环遍历原数组,判断心数组里面是否有原数组元素,如果没有,存放入新数组中。
<script>
var newArr = [] //定义一个空数组,用来存放不重复的数
var arr = [34, 85, 67, 80, 80, 34, 34, 80, 99]
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]) //利用push将元素放入新数组中
}
}
console.log(newArr) // [34, 85, 67, 80, 99]
</script>
2.splice方法实现
思路:利用for双重循环,将数组的第一个数与后面的剩余的所有数进行比较,如果相同,则截取掉,依次类推,去掉数组里面重复的元素。
<script>
function removeDuplicate() {
var arr = [34, 85, 67, 80, 34, 34, 80, 99]
//利用双重循环,将第一个数和后面的数依次比较,如果相同,则截取掉相同的数的后者
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1)
j-- //截取后原数组的数会减少,所以-1回复到上一个下标处
}
}
}
console.log(arr) // [34, 85, 67, 80, 99]
}
removeDuplicate()
</script>