首頁 >web前端 >js教程 >js數組去重和排序詳解

js數組去重和排序詳解

小云云
小云云原創
2018-05-30 11:26:282715瀏覽

本文主要和大家分享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實作陣列去重的方法程式碼

#

以上是js數組去重和排序詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn