js數組排序方法總結


昨天提到了Array.from方法配合set可以實現排序,那么今天總結下還有哪些方法可以實現排序吶。

1:創建一個新的數組,賦予目標數組的第一個元素,然后循環判斷目標數組的第二個元素到最后一個元素,如果不包含在新數組中則push進新數組

function a1(arr) {
let s = Object.prototype.toString;
if(s.call(arr)!== '[object Array]'){
    throw new typeError('the argument need array');
}
let nArr = []
arr.forEach(function(item,index) {
    if(nArr.indexOf(item) === -1){
        nArr.push(item)
    }
})
return nArr;
}  

2:利用set結構實現 需要支持es6。

function unique(arr) {
return [...new Set(arr)]
}

3:利用對象的屬性不能重復進行判斷,但是對象的屬性還會自動調用toString方法,因此無法分辨string,number是否重復比如[1,'1']因此利用新數組的indexOf進行判斷下。

function unique2(array){
  var n = {}, r = [], len = array.length, val;
    for (var i = 0; i < array.length; i++) {
        val = array[i];
        if (!n[val]) {
          n[val] = [val]
            r.push(val);
        } else if (r.indexOf(val) < 0) {
            n[val].push(val);
            r.push(val);
        }
    }
    return r;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM