数组去重的方法很多,我在这里整理了其中一种方法,并且就着例子介绍了下其中的思路。
1.数组去重的js代码如下:
var arr1=[5,16,4,1,5,14,16];
var arr2=[];for (var i=0;i<arr1.length;i++) {
if (arr2.indexOf(arr1[i]) == -1) {
arr2.push(arr1[i]);
}
}
console.log(arr2);
2.关于数组去重,我使用的是js的indexOf()这个方法:
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果要检索的字符串值没有出现,则该方法返回 -1。
3.整体的思路如下:
先在数组1中从第一个值开始循环。
检索这个值有没有存在 当前的数组arr2中,
arr2.indexOf(arr1[i]) (i取值范围为 0 到 数组的长度-1 )
不存在时返回值 -1。
进入if判断: 当值为-1时,将[当前下标]的 [数组arr1元素]即arr1[i] 添加到[数组arr2]中.
之后继续 for循环 检索if判断。
最后的数组arr2就是我们去重后得到的数组。
====
如例:
在我们上面的代码中,arr1[0]值为5,当前数组arr2中为空,arr1[0]不存在数组arr2中
==>所以将arr1[0]的值即第一个5添加到数组arr2。
然后for循环一直进行if判断添加。
当for循环进行到arr1[4]即第二个5时,
此时这个数字在数组arr2中已经存在了。( 此时的arr2为[5,16,4,1] )
==>不满足 arr2.indexOf(arr1[i]) == -1
所以不会进入if语句里面,这个arr1[4]的值也不会添加到数组arr2中去
====