Rumah  >  Artikel  >  hujung hadapan web  >  js数组去重和排序详解

js数组去重和排序详解

小云云
小云云asal
2018-05-30 11:26:282657semak imbas

本文主要和大家分享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:&#39;x2&#39;},{a:3,b:&#39;x3&#39;},{a:1,b:&#39;x1&#39;}];
		var arr2 = [4,1,3,5,2]

		var newArr = conf.sortList(arr,&#39;a&#39;);
		var v = conf.sortList(arr2);
		console.log(newArr)
		console.log(v)

相关推荐:

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

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

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

Atas ialah kandungan terperinci js数组去重和排序详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn