JS中陣列去重的九方法

2022-01-14 15:28:45 字數 1776 閱讀 8369

陣列去重方法

方法一:運用set結構特點:儲存的資料沒有重複的,結果為物件,再用array.from()轉換成陣列

var arr = [1,1,2,1,3,4,5];

var set = new

set(arr);

console.log(array.from(set))

方法二 用es5新增的indexof()和push()方法 (非常簡便好理解)

function

norepeat(arr)

}return

newarr;

}

方法三執行indexof()判斷每個值第一次出現的位置和當前i的值是否相等

function

norepeat(arr)

}return

newarr;

}

方法四:利用物件的屬性唯一   (速度快,佔空間多,用空間來換時間)

var res =;

var obj ={};

for(var i=0; i)}

方法五:先利用sort排序再比較相鄰的是否相等,相等則刪除

function

norepeat(arr) );

for (var i = 0; i < arr.length; i++)

}return

arr;

}

注意:不加 i-- 則會刪除後,跳過乙個數字

方法六:運用splice()方法和雙層for迴圈(有點類似選擇排序)

function

norepeat(arr)}}

return

arr;

}

注意:不加 j-- 則會刪除後,跳過乙個數字

方法六第二種寫法 效率低,會增加大量無用的迴圈比較

function

norepeat(arr)}}

return

arr;

}

方法七:利用陣列下標不能重複,先將引數裡的值轉化成乙個陣列的下標,再將下標重新轉化成值(非常棒的思路)

function

norepeat(arr)

for(var i in

newarr)

}

方法八:先排序再用遞迴進行比較刪除

function

digui(arr) )

//用遞迴的方法進行去重

function

loop(index)

loop(index - 1); //

遞迴loop函式進行去重

} }

loop(len - 1);

return

arr;

};

方法九也可以實現

var arr = [6, 1, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 4, 15];

function

norepeat(arr)

}console.log(arrcopy);

if (count ==arrcopy.length)

}return

arrcopy;

}

//覺得這篇文章有用的  幫我點點贊啊,乙個贊你買不了吃虧你買不了上當,你啥也買不了

js中陣列去重的方法

在實際工作或面試中,我們經常會遇到 陣列去重 問題,接下來就是使用js實現的陣列去重的多種方法 var arr 1 23,1 1,1 3,23 5,6 7,9 9,8 5,5 5,5 console.log arr 1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5 functi...

js中陣列去重的方法

在實際工作或面試中,我們經常會遇到 陣列去重 問題,接下來就是使用js實現的陣列去重的多種方法 1.借助es6提供的set結構 var arr 1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1 console.log arr 1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,...

js陣列去重方法

var arr 1,2,3,4,5,1,2,3 function norepeat arr console.log norepeat arr 結果 1,2,3,4,5 arr.indexof val 這個方法會獲取val所在arr的下標 返回為 true 說明 獲取下標後和index下標對比如果 i...