基于另一个数组过滤 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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告