中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript數組去重如何實現

發布時間:2021-09-08 09:43:30 來源:億速云 閱讀:126 作者:小新 欄目:web開發

這篇文章主要為大家展示了“javascript數組去重如何實現”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“javascript數組去重如何實現”這篇文章吧。

方法:1、利用“[...new Set(arr)]”語句;2、利用“Array.from(new Set(arr))”語句;3、利用filter和indexOf函數;4、利用雙重for循環,檢查值是否重復,如果有重復就使用push()刪除。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

方法1:[…new Set(arr)]

const arr = [1, 2, 3, 2, 3];
[...new Set(arr)]; // [1, 2, 3]

方法2:Array.from(new Set(arr))

const arr = [1, 2, 3, 2, 3];
Array.from(new Set(arr)); // [1, 2, 3]

由于 Set 中的元素是唯一的,無論是原始值或者是對象引用,所以可以通過將數組轉換成 Set 對象來實現去重

Array.from方法可以將 Set 對象轉換成數組。

方法3:利用filter+ indexOf

function unique(arr) {
  return arr.filter(function(item, index, arr) {
    //當前元素,在原始數組中的第一個索引==當前索引值,否則返回當前元素
    return arr.indexOf(item, 0) === index;
  });
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]

方法4:雙重 for 循環

最容易理解的方法,外層循環遍歷元素,內層循環檢查是否重復

當有重復值的時候,可以使用 push(),也可以使用 splice()

function distinct(a, b) {
    let arr = a.concat(b);
    for (let i=0, len=arr.length; i<len; i++) {
        for (let j=i+1; j<len; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1);
                // splice 會改變數組長度,所以要將數組長度 len 和下標 j 減一
                len--;
                j--;
            }
        }
    }
    return arr
}

但這種方法占用的內存較高,效率也是最低的

javascript數組去重如何實現

方法5:for...of + includes()

雙重for循環的升級版,外層用 for...of 語句替換 for 循環,把內層循環改為 includes()

先創建一個空數組,當 includes() 返回 false 的時候,就將該元素 push 到空數組中

類似的,還可以用 indexOf() 來替代 includes()

function distinct(a, b) {
    let arr = a.concat(b)
    let result = []
    for (let i of arr) {
        !result.includes(i) && result.push(i)
    }
    return result
}

javascript數組去重如何實現

以上是“javascript數組去重如何實現”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临漳县| 昭平县| 玛纳斯县| 凭祥市| 黔西县| 军事| 富源县| 双桥区| 荣昌县| 蛟河市| 军事| 漳州市| 张家口市| 新和县| 鄱阳县| 沈阳市| 黄龙县| 铁岭县| 利津县| 榆林市| 报价| 东台市| 阆中市| 湘西| 襄垣县| 莆田市| 津市市| 称多县| 乡城县| 盐池县| 英吉沙县| 同德县| 昂仁县| 高要市| 万源市| 金湖县| 卢龙县| 横山县| 怀集县| 五寨县| 盐边县|