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>輸出

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP