更多内容,欢迎关注微信公众号“让知识成为资产”。
1.基本的去重方法
function findInArr(n ,arr){ //创建函数,查找一个数在当前数组中是否存在
for (var i = 0; i < arr.length; i++) {
if (n == arr[i]) return true; //如果存在,返回true
}
return false; //不存在返回false
}
function select (arr){
var arr2 = [] ; //创建空数组,用来保存去重后的新数组
for(var i = 0; i < arr.length; i++){ //循环原数组
if (!findInArr(arr[i],arr2)) { //调用findInArr方法,查找当前arr[i]在arr2中是否存在
arr2.push(arr[i]); //如果返回false,就把当前这个数 arr[i] ,push到新的数组 arr2中
}
}
return arr2; //返回去重后的新数组
}
JavaScript sort() 方法
定义和用法——
- sort() 方法用于对数组的元素进行排序。
- 排序顺序可以是字母或数字,并按升序或降序。
- 默认排序顺序为按字母升序。
注意——
- 当数字是按字母顺序排列时”40”将排在”5”前面。
- 使用数字排序,你必须通过一个函数作为参数来调用。
- 函数指定数字是按照升序还是降序排列。
- 这种方法会改变原始数组。
语法——array.sort(sortfunction)
参数——
- sortfunction:可选。规定排序顺序。必须是函数。
- 数字升序排序:function(a,b){return a-b};
- 数字降序排序:function(a,b){return b-a};
返回值——对数组的引用。数组在原数组上进行排序,不生成副本。
JavaScript push() 方法
定义和用法——push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法——array.push(item1, item2, …, itemX);
参数——至少一个参数,添加到数组。
返回值——把指定的值添加到数组后的新长度。
注意——新元素将添加在数组的末尾; 此方法改变数组的长度。
2.利用对象的属性去重(推荐)
function select (arr){
var json = {}; //创建一个空的json
var arr2 = [] ;
for (var i = 0; i < arr.length; i++) {
if (!json[arr[i]]) { //在对象中访问这个属性,如果存在就说明重复,!json[arr[i]],取反说明不存在
json[arr[i]] = true; //这样可以对其进行赋值,赋值随意
arr2.push(arr[i]) //
}
}
return arr2;
}
3.先排序再去重
function select(arr){
arr.sort(); //用sort 进行简单排序,相同的数字一定被排到了一起
for (var i = 0; i < arr.length; i++) { //对排序之后的数组遍历
if (arr[i] == arr[i+1]) { //让当前的数和下一个数进行比较
arr.splice(i,1); //如果相等,用splice(i,1) 方法对其进行删除
i--;
}
}
return arr; //返回去重后的新数组
}
JavaScript splice() 方法
定义和用法——splice() 方法用于插入、删除或替换数组的元素。
注意——这种方法会改变原始数组。
语法——array.splice(index,howmany,item1,…..,itemX);
参数——
- index:必需。规定从何处添加/删除元素。该参数是开始插入或删除的数组元素的下标,必须是数字。
- howmany:必需。规定应该删除 多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index开始到原数组结尾的所有元素。
- item1, …, itemX:可选。要添加 到数组的新元素。
4.使用数组的indexOf方法(IE8不兼容)
function select (arr){
var arr2 = [];
for( var i = 0; i < arr.length; i++){
if (arr2.indexOf(arr[i]) == -1) //通过判断arr2.indexOf(arr[i]) == -1,来确定新数组arr2中没有arr[i]
arr2.push(arr[i]); //将其添加到数组arr2中
}
return arr2; //返回新数组arr2
}
JavaScript indexOf() 方法
定义和用法——indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。
注意—— indexOf() 方法区分大小写。
语法——string.indexOf(searchvalue,start);
参数值——
- searchvalue:必需。规定需检索的字符串值。
- start:可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length -1。如省略该参数,则将从字符串的首字符开始检索。
返回值——查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。
更多内容,欢迎关注微信公众号“让知识成为资产”。
扫描二维码关注公众号,回复:
919022 查看本文章