js数组去重和排序详解
程序员文章站
2022-03-27 16:37:49
...
本文主要和大家分享js数组去重和排序详解,希望能帮助到大家。
1、用 indexOf 查看是否存在,不存在没添加
var arr = ['aa','aa','aa','bb','bb',3,5,8,9,4,5,4]; function unique(arr){ var newArr = []; for(var i in arr){ if(newArr.indexOf(arr[i]) === -1){ newArr.push(arr[i]) } } return newArr; }
2、用 再用 filter 筛选,再用 indexOf 查看是否存在
function unique1(arr){ function aa(item, index, array){ return array.indexOf(item) === index; // 当前值在原数组中第一次出现的位置 === 他的索引,就证明它不是重复的,然后就返回去 } var res = arr.filter(aa); return res }
排序
var conf = { compare : function(property){ return function(a,b){ var value1 = a[property]; var value2 = b[property]; return value1 - value2; } }, sortList:function(arr,str){//数组排序 if(Object.prototype.toString.call(arr).slice(8,-1) ==='Array'){ if(str){ var returnArr = arr.sort(this.compare(str)); }else{ var returnArr = arr.sort(this.sort(str)); } return returnArr; }else{ return arr; } }, sort:function(arr){//数组排序 if(Object.prototype.toString.call(arr).slice(8,-1) ==='Array'){ var array = []; for(var i in arr){ array.push(arr[i]); } for (var i = 1; i < array.length; i++) { var key = array[i]; var j = i - 1; while (j >= 0 && array[j] > key) { array[j + 1] = array[j]; j--; } array[j + 1] = key; } return array; }else{ return arr; } } } var arr = [{a:2,b:'x2'},{a:3,b:'x3'},{a:1,b:'x1'}]; var arr2 = [4,1,3,5,2] var newArr = conf.sortList(arr,'a'); var v = conf.sortList(arr2); console.log(newArr) console.log(v)
相关推荐:
以上就是js数组去重和排序详解的详细内容,更多请关注其它相关文章!