数组去重这种问题经常会遇到,解决方法也有很多,这里就总结两种比较常用的方法。
方法一
第一种方法的思路:遍历数组里的元素,由第一个元素开始依次按照顺序与其后面的元素相比较,如果不同则不用管,相同则把其后所被比较的元素去除。这样所有元素循环一遍,数组中重复的元素就能全部去除。
代码:
<script>
var arr = [1, 5, 7, 6, 3, 2, 5, 4, 6, 9, 5, 1, 2, 3, 5, 4, 8, 9, 5, 4, 5, 0];
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--;
}
}
}
document.write(arr);
</ script>
方法二
第二种方法的思路:新建一个空数组,需要去重的数组的每一个元素依次与新建数组的所有元素比较。如果不同就把元素放入新建的数组中,如果相同就不用处理。这样需要去重的数组的所有元素循环一遍,新建的数组即为按要求完成去重后得到的数组。
代码:
<script>
var arr = [1, 5, 7, 6, 3, 2, 5, 4, 6, 9, 5, 1, 2, 3, 5, 4, 8, 9, 5, 4, 5, 0];
var arr1 = [];
for (var i = 0; i <= arr.length; i++) {
var states = 1;
for (var j = 0; j <= arr1.length; j++) {
if (arr[i] == arr1[j]) {
states = 0;
break;
}
}
if (states == 1) {
arr1.push(arr[i]);
}
}
document.write(arr1);
</ script>