JavaScript:如何從陣列中過濾掉非唯一值?


陣列是用於以結構化格式儲存資料的資料結構。我們可以將資料儲存在陣列中,並使用其索引檢索它們。這些索引充當這些值的鍵。

在本文中,我們將過濾掉非唯一值,並返回僅包含唯一非重複元素的陣列。

方法

在一個包含唯一元素的陣列中,我們將獲取所有元素,然後將它們與之前的元素集合進行比較。如果任何元素已經存在,則表示它是重複元素,我們將將其從結果陣列中刪除。

在本文中,我們將使用filter() **方法**和forEach() **方法**來過濾掉非唯一值。

方法1 - 使用filter()方法

filter()方法返回滿足單次出現條件的元素。我們將使用JavaScript提供的indexOf()功能來刪除所有重複元素。

語法

var newArr=initialArr.filter((value ,index)=>{
   // conditions with return
});

示例1

在下面的示例中,我們將刪除所有重複的數字

# index.html

<!DOCTYPE html>
<html>
<head>
   <title>Filtering the Non-unique characters</title>
</head>
<body>
   <h1 style="color: green;">
      Welcome To Tutorials Point
   </h1>
   <script>
      var array=[1, 1, 2, 3, 3, 5, 6, 7, 7, 7, 8, 9];
      console.log("Before filtering non unique values: " + array);
      var unique=array.filter((value, index) => {
         return array.indexOf(value) === array.lastIndexOf(value);
      });
      console.log("After filtering non unique values: " + unique);
   </script>
</body>
</html>

輸出

成功執行上述程式後,瀏覽器將顯示以下結果。

Welcome To Tutorials Point

並且在控制檯中,您將找到結果,請參見下面的螢幕截圖 -

方法2 - 使用for()迴圈

使用**for()**迴圈只會將唯一元素推入陣列。我們將使用**indexOf()**方法來檢查元素的第一次和最後一次出現是否相同。

示例2

在下面的示例中,我們將刪除所有重複的數字

# index.html

<!DOCTYPE html>
<html>
<head>
   <title>Filtering the Non-unique characters</title>
</head>
<body>
   <h1 style="color: green;">
      Welcome To Tutorials Point
   </h1>
   <script>
      var array = [1, 1, 2, 3, 3, 5, 6, 7, 7, 7, 8, 9];
      console.log("Before filtering: " + array);
      var unique = [];
      for (let i = 0; i < array.length; i++) {
         if (array.lastIndexOf(array[i]) === array.indexOf(array[i])) {
            unique.push(array[i]);
         }
      }
      console.log("After filtering: " + unique);
   </script>
</body>
</html>

輸出

更新於:2022年4月26日

1K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.