Javascript中的数组去重-indexof方法

在Javascript中,有时我们会用到数组去重。我在这里给大家介绍一下本人认为最简单实用的一种方法-indexOf()去重。

1 var arr = [1,1,1,2,2,2,3,3,4,5,6,2,1];
2     var arr2 = [];
3     for(var i = 0;i < arr.length;i++){
4         if(arr2.indexOf(arr[i]) == -1){
5             arr2.push(arr[i])
6         }
7     }
8     console.log(arr2) //[1,2,3,4,5,6]

它的原理非常的简单,但在这之前大家还需了解Javascript中的 indexOf()方法。

在W3CSchool它的解释是这样的

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头

(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

因为对大小写的区分问题还有一个小demo

var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />") //0
document.write(str.indexOf("World") + "<br />") //-1
document.write(str.indexOf("world")) //6

indexOf() 方法对大小写敏感!

如果要检索的字符串值没有出现,则该方法返回 -1。

首选用arr2来索引arr[i](单字符串),因为arr2中为空所以可以索引到arr[i]的值,但是每循环一次arr2中的值就会多起来,当索引到相同的值时

就不会添加到arr2中,所有就起到了数组去重的效果。

posted @ 2017-06-08 16:47  UniverseWang  阅读(984)  评论(0编辑  收藏  举报