1. 程式人生 > >javascript 陣列去重的幾種方法

javascript 陣列去重的幾種方法

方法一:利用indexOf判斷新陣列

underscore.js中實際上也是使用的類似的indexOf

//傳入陣列
function unique1(arr){
    var tmpArr = [];
    for(var i=0; i<arr.length; i++){
        //如果當前陣列的第i已經儲存進了臨時陣列,那麼跳過,
        //否則把當前項push到臨時數組裡面
        if(tmpArr.indexOf(arr[i]) == -1){
            tmpArr.push(arr[i]);
        }
    }
    return tmpArr;
}

方法二:利用indexOf判斷舊陣列
function unique2(arr){
    var tmpArr = []; //結果陣列
    for(var i=0; i<arr.length; i++){
        //如果當前陣列的第i項在當前陣列中第一次出現的位置不是i,
        //那麼表示第i項是重複的,忽略掉。否則存入結果陣列
        if(arr.indexOf(arr[i]) == i){
            tmpArr.push(arr[i]);
        }
    }
    return tmpArr;
}

方法三:利用hash查詢

這裡利用了JS物件的實現就是hash表的特性

function unique3(arr){
    var tmpArr = [], hash = {};//hash為hash表
    for(var i=0;i<arr.length;i++){
        if(!hash[arr[i]]){//如果hash表中沒有當前項
        hash[arr[i]] = true;//存入hash表
        tmpArr.push(arr[i]);//存入臨時陣列
        }
    }
    return tmpArr;
}

方法四:使用ES6 Set

相關推薦

JS陣列方法

JS陣列去重幾種方法 1. 利用ES6 Set去重(ES6中最常用) ``` function unique(arr){   return Array.from(new Set(arr)); } var arr=[1,1,2,3,3,3,4,4,4,5,5,'1','tr

JavaScript陣列12中方法

陣列去重,一般都是在面試的時候才會碰到,一般是要求手寫陣列去重方法的程式碼。如果是被提問到,陣列去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。 在真實的專案中碰到的陣列去重,一般都是後臺去處理,很少讓前端處理陣列去重。雖然日常專案用到的概率比較低,但還是需要了解一下,以防面

JavaScript 陣列的多種方法原理詳解

說明 陣列去重,這是一個面試經常會遇見的問題,網上講陣列去重的文章也是特別的多,但是我們依舊來講講陣列去重,這篇文章比較適合於接觸過一段時間的JavaScript的初學者,希望這篇文章能給初學者帶來一些幫助。 方法一 function unique(arr

JavaScript陣列的原型方法

      本文主要說明兩種原型方法來過濾陣列中的重複元素。 方法一: 思路:1)構建一個新的陣列存放結果;           2)for迴圈中每次從原陣列中取出一個元素,用這個元素迴圈與結果陣列對

陣列方法

方法一: var arr=[21,21,2,3,5,77,2]; var arr2=[]; for(var i=0;i<arr.length;i++){ var flag=true; for(v

陣列4方法

var arr=[1,2,3,4,2,3,1,5,3]; //去重 方法一:for..in... function removeRepeat(arr){ var newArr=[]; for(var i in arr){ if(newArr.indexOf(arr[i])&

陣列方法 (不用集合)

第一種方法(只學到陣列的看): 定義一個新的陣列長度和舊陣列的長度一樣,儲存除去重複資料的舊陣列的資料和0, public static void main(String[] args) { // 獲取一個無重複元素的陣列 int[] arr

javascript 陣列方法

方法一:利用indexOf判斷新陣列 underscore.js中實際上也是使用的類似的indexOf //傳入陣列 function unique1(arr){ var tmpArr = []; for(var i=0; i<arr.lengt

JavaScript陣列的四方法

今天,剛剛參加了公司的筆試,關於陣列去重,後來簡單總結了幾種方法,希共勉,為我打call....... es5四種方式: 方式一: Array.prototype.unique1 = function() { // 1. 定義陣列 var temp = []; // 2. 遍歷當前陣列 f

JavaScript陣列(12方法

陣列去重,一般都是在面試的時候才會碰到,一般是要求手寫陣列去重方法的程式碼。如果是被提問到,陣列去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。 在真實的專案中碰到的陣列去重,一般都是後臺去處理,很少讓前端處理陣列去重。雖然日常專案用到的概率比較低,但還是需要了解一下,以防面試的

JavaScript陣列的N方法

對於陣列去重我們有n種方法可以實現。 es5實現方法 for迴圈+indexOf function unique(arr) { var uniqueArr = [], len = arr.length for (var i = 0; i < len; i++) { if (uniqu

JavaScript陣列(12方法,史上最全)

陣列去重,一般都是在面試的時候才會碰到,一般是要求手寫陣列去重方法的程式碼。如果是被提問到,陣列去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。在真實的專案中碰到的陣列去重,一般都是後臺去處理,很少讓前端處理陣列去重。雖然日常專案用到的概率比較低

JavaScript陣列方式

1.利用ES6 Set的內容不重複的特性 function unique (arr) { return Array.from(new Set(arr)) } var arr = []; console.log(unique(arr)); 2.利用for迴圈巢狀比較,splice

JavaScript陣列的12方法

陣列去重,一般都是在面試的時候才會碰到,一般是要求手寫陣列去重方法的程式碼。如果是被提問到,陣列去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。 在真實的專案中碰到的陣列去重,一般都是後臺去處理,很少讓前端處理陣列去重。雖然日常專案用到的概率比較低,但還

陣列物件陣列求和的方法

陣列去重 1,陣列物件去重:id、name,type都重複的時候,才會被去重 delRepeat(arr) { return Object.values( arr.reduce((obj, next) => {

史上最全JavaScript陣列的十方法(推薦)

一、前言: 我們在實際工作中,或者在面試找工作時,都會用到或者被問到一個問題,那就是“陣列如何去重”。是的,這個問題有很多種解決方案,看看下面的十種方式吧! 二、陣列去重方式大彙總: Methods 1: 思路:定義一個新陣列,並存放原陣列的第一個元素,然後將元素組一一和新陣列的元素

方法實現JavaScript陣列

JavaScript陣列去重問題雖然在實際開發中很少應用 但卻是面試(或筆試)中可能被問到的題 如果只能說出一兩種方法的話,就顯得我們很low 所以這裡我總結了陣列去重的六種方法供大家參考 直接遍歷 首先先來一種簡單粗暴的方法 也是很容易就可以想

JavaScript陣列定義的方法,以及關於陣列長度的討論

大家在使用JavaScript編寫指令碼語言的時候,尤其是習慣使用Java語言的朋友,定義了一個固定長度的陣列,但是使用了一個超出定義陣列的元素,程式並沒有報“陣列越界”錯誤,這到底是什麼原因呢?今天我們來分享一下! 1、陣列定義的四種方法: var arr_1 = ne

JavaScript陣列方法,面試加分項!

陣列去重,一般都是在面試的時候才會碰到,一般是要求手寫陣列去重方法的程式碼。如果是被提問到,陣列去重的方法有哪些? 你能答出其中的10種方法,面試官絕對會對你刮目相看! 加分項!學起來! 在真實的專案中碰到的陣列去重,一般都是後臺去處理,很少讓前端處理陣列去重。

JavaScript陣列—ES6的兩方式

說明 JavaScript陣列去重這個問題,經常出現在面試題中,以前也寫過一篇陣列去重的文章,(JavaScript 陣列去重的多種方法原理詳解)但感覺程式碼還是有點不夠簡單,今天和大家再說兩種方法,程式碼可是足夠的少了。 解釋 方法一: function un