基於另一個數組過濾 JavaScript 陣列


在本文中,我們將學習如何在 JavaScript 中基於另一個數組過濾陣列。

JavaScript 中的陣列用於儲存不同的元素。這些元素儲存在連續的記憶體位置。透過使用索引號,我們可以訪問陣列中存在的任何或每個資料元素。索引號從 0 開始。

語法

以下是 JavaScript 中陣列的語法:

const array_name = [item1, item2, ...];

以下是 JavaScript 中陣列的簡單宣告:

Const colors = ['Blue', 'Limegreen', 'Orange', 'Black'];

讓我們假設一些簡單的輸入和輸出場景:

讓我們假設一個場景,我們有兩個陣列包含其中的元素,並且兩個陣列中有一些公共元素。我們需要過濾公共元素。

Input arr1 = [1, 3, 7, 10];
   arr2 = [3, 7];
Output = [1, 10];

考慮另一個場景,兩個陣列中都有公共元素(字串),過濾公共字串並返回唯一元素。

Input arr1 = ['ravi', 'kunal', 'hari'];
   arr2 = ['ravi', 'sharma'];
Output arr1 = ['kunal', 'hari']
   arr2 = ['sharma']

使用 array.filter() 方法

filter() 方法使用函式指定的測試生成一個包含透過測試的元素的新陣列。對於空元素,filter() 方法不執行函式。

示例

以下是使用 array.filter() 方法基於另一個數組過濾陣列的示例。

<!DOCTYPE html>
<html>
<head>
   <title>Filtering array on another array</title>
</head>
<body>
   <script>
      const array1 = [1, 3, 7, 10, 17, 18, 33, 45, 99];
      const array2 = [10, 17, 33];
      const filterArray = (array1, array2) => {
         const filtered = array1.filter(el => {
            return array2.indexOf(el) === -1;
         });
         return filtered;
      };
      document.write(filterArray(array1, array2));
   </script>
</body>
</html>

示例

以下是使用 filter() 方法執行給定任務的另一個示例。

<!DOCTYPE html>
<html>
<head>
   <title>Filtering array on another array</title>
</head>
<body>
   <script>
      var arr = [6, 1, 9, 4, 7].filter(
         function(e) {
            return this.indexOf(e) < 0;
         },
         [1, 4, 7]
      );
      document.write("Filtered array is: ", arr);
   </script>
</body>
</html>

示例

下面的程式是使用 filter() 方法解決任務的另一種方法:

<!DOCTYPE html>
<html>
<head>
   <title>Filtering array on another array</title>
</head>
<body>
   <script>
      let arr1 = ['Govind', 'Alekhya', 'Sarika', 'Raviteja', 'Pooja'];
      let arr2 = ['Alekhya', 'Pooja'];
      arr1 = arr1.filter(function(item) {
         return !arr2.includes(item);
      })
      document.write(arr1);
   </script>
</body>
</html>

示例

以下是使用 filter() 方法和 includes() 方法解決任務的另一種方法。

<!DOCTYPE html>
<html>
<head>
   <title>Filtering array on another array</title>
</head>
<body>
   <script>
      function filter_array(){
         let arr1 = ['s', 'r', 'a', 'k', 'i'];
         let arr2 = ['n', 's', 'k'];
         var tempArray = arr2.filter(function(item) {
            return !arr1.includes(item);
         });
         arr1 = arr1.filter(function(item) {
            return !arr2.includes(item);
         });
         arr2 = tempArray;
         document.write(arr1, "<br>");
         document.write(arr2);
      }
      filter_array();
   </script>
</body>
</html>

更新於:2022年12月19日

13K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告