JavaScript數(shù)組去重方法

基本方法

-思路:創(chuàng)建一個新數(shù)組,遍歷原數(shù)組,喏遍歷的元素在新數(shù)組不存在就添加到數(shù)組中,反之則忽略

function unArray(arr){
    var res  = [];
    for(var i = 0; i< arr.length ; i++ ){
        var repeat = false;
        for(var k = 0 ; k  < res.length; k++ ){
            if(arr[i]  === res[j] ){
              repeat = true;
              break;
          }
      }
          if(!repeat){
              res.push(arr[i]);
          }
  }
  return res
}

先排序再去重

-思路:先對數(shù)組排序,再定義一個新的數(shù)組,變量排序后的數(shù)組,喏排序后的數(shù)組元素不等于新數(shù)組的最后一個元素,則添加。

        function unArray(arr) {
            function sortNumber(a,b) {
                return a-b;
            }
            var newArr = arr.sort(sortNumber);
            var res = [];
            for (var i = 0 ; i < newArr.length ; i++){
                if (newArr[i] !== res[res.length-1 ]){
                    res.push(newArr[i]);
                }
            }
            return res;
        }

對象去重

-思路:利用對象的屬性,遍歷數(shù)組,喏數(shù)組元素不是對象的屬性,則添加

        function unArray(arr) {
            var res = [];
            var temp = {};
            for (var i = 0 ; i < arr.length; i++){
                if (!temp[arr[i]]){
                    res.push(arr[i]);
                    temp[arr[i]] = 1;
                }
            }
            return res;
        }

filter or indexOf 方法

-思路:通過filter篩選出去重后的數(shù)組,喏indexOf方法在該元素之后再查不到該元素的位置,表示該元素不存在,符合要求。

       function unArray(arr) {
            return arr.filter(function (item,index,array) { 
                return array.indexOf(item, index+1) === -1;
            })
        }

ES6 Set

-思路:利用ES6中的Set不包含重復(fù)元素的思想,為數(shù)組創(chuàng)建Set對象,再將對象轉(zhuǎn)換為數(shù)組

 function unArray(arr) {
            return Array.from(new Set(arr))
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,553評論 0 4
  • 前言 最近學(xué)習(xí)著,突然發(fā)現(xiàn)自己心中總有些惶恐,因?yàn)榘l(fā)現(xiàn)自己寫過的一些東西好像忘記了,又好像是以前就沒有弄徹底,所以...
    lane_developer閱讀 445評論 0 2
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,494評論 0 21
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,767評論 11 349
  • 我小時候,爸爸是開拖拉機(jī)的,是那種手搖的,我七歲坐在副駕駛,跟著爸爸拉豆渣,到處溜達(dá),八九歲能自己站著開。我爸覺得...
    玳瑁的茂閱讀 262評論 0 0

友情鏈接更多精彩內(nèi)容