經典js面試題:數組去重

數組去重

數組去重做爲js的經典面試題,比較考察js基礎,在實際應用中也有較多的場景。es6

常規方法

  • 利用對象屬性
function oSort( arr ) {
                 var result = {};
                 var newArr = [];
                 for (var i = 0 ; i < arr.length; i ++ ) {
                       if (! result[arr[i]]) {
                           newArr.push(arr[i]);
                           result[arr[i]] = 1;
                       }
                }
                 return newArr;
     }
複製代碼
  • 利用傳入數組查詢值指針是否爲本身
function oSort2( arr ) {
                 var n = [];
                 for (var i = 0 ; i <arr.length; i ++ ) {
                       if (arr.indexOf(arr[i])== i) {
                           n.push(arr[i]);
                      }
                }
                 return n;
           }
複製代碼
  • 查找返回數組查詢值是否存在
function oSort3 ( arr ) {
                 var n = [];
                 for (var i = 0 ; i <arr.length; i ++ ) {
                       if (n.indexOf(arr[i])<0 ) {
                           n.push(arr[i]);
                      }
                }
                 return n;
       }
複製代碼

es6拓展

  • set ,自己數據結構爲非重複數組
const unique = arr => {
    return [...new Set(arr)]
}

複製代碼
  • filter ,支持數組過濾
const unique = arr => {
    return arr.filter((ele, index, array) => {
        return index === array.indexOf(ele)
    })
}
複製代碼
相關文章
相關標籤/搜索