javascript如何刪除陣列中重複的項

螞蟻小編發表於2017-03-16

陣列中出現重複項是不可避免的,但是往往現實需要的是沒有重複項的陣列,下面就介紹兩種如何刪除陣列重複項的程式碼例項,希望能夠給需要的朋友帶來一定的幫助。

解決方案一:

[JavaScript] 純文字檢視 複製程式碼
function unique(arr){
  var obj = {},newArr = [];
  for(var i = 0;i < arr.length;i++){
    var value = arr[i];
    if(!obj[value]){
      obj[value] = 1;
      newArr.push(value);
    }
  }
  return newArr;
}
var theArray=[1,2,3,4,5,2,1];
console.log(unique(theArray));

以上程式碼實現了我們的要求,可以刪除陣列中的重複元素,簡單簡單介紹一下實現過程:

一.實現原理:

原理比較簡單,就是讓陣列中的值作為物件的屬性,通過遍歷比對陣列的值是否已經是物件的屬性,如果還不是的話,就將此陣列值新增到新的陣列,通過for迴圈於是就是最終實現了此效果。

二.程式碼註釋:

1.function unique(arr){},實現此功能的函式,引數是要刪除重複元素的陣列。

2.var obj = {},newArr = [],宣告一個物件和陣列。

3.for(var i = 0;i < arr.length;i++){},遍歷陣列中的每一個元素。

4. var value = arr,將陣列指定索引的值存入變數value。

6.if(!obj[value]),判斷物件obj中是否具有此屬性。

7.obj[value] = 1,為物件新增屬性,並設定屬性值為1。

8.newArr.push(value),將陣列值新增到新的陣列。

9.return newArr,返回新陣列。

解決方案二:

[JavaScript] 純文字檢視 複製程式碼
function unique (arr){
  for(var i = 0;i < arr.length;i++){
    for(var j = i+1;j < arr.length;j++){
       if(arr[i] === arr[j]){
          arr.splice(j,1);
          j--
        }
      }
   }
   return arr;
}
var theArray=[1,2,3,4,5,2,1];
console.log(unique(theArray));

相關文章