js数组去重和排序详解

小云云
小云云 原创
2018-05-30 11:26:28 2198浏览

本文主要和大家分享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)

相关推荐:

实例详解javascript数组去重的几种思路

JavaScript数组去重的几种方法分享

PHP实现数组去重的方法代码

以上就是js数组去重和排序详解的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。