JavaScript 当key为字符串时如何比较两个数组

JavaScript 当key为字符串时如何比较两个数组

当键是字符串时,在JavaScript中比较两个数组是很棘手的。字符串的比较是区分大小写的,需要特殊处理以确保结果正确。

幸运的是,在JavaScript中,当键为字符串时,有几种方法可以用来比较两个数组。在这篇文章中,我们将讨论如何使用各种方法有效地比较两个以字符串为键的数组,如*map()、Include()。Intersection()和Arrayfilter()。

Strings 构造函数,字符串可以作为基元,从字符串字面意义上,或作为对象来创建。

在JavaScript中使用map()

绘图()* 是一个内置的JavaScript方法,它创建一个新的数组,其中包含对数组中每个元素调用所提供函数的结果。它可以用来遍历一个数组,修改每个项目,并将修改后的项目作为一个新的数组返回。对于空项,该函数不会被map()运行。初始数组不受map()的影响。

语法

以下是map()的语法

array.map(function(currentValue, index, arr), thisValue)

JavaScript中的include()

在JavaScript中,include() 包含另一个子串。结果是以真或假的形式返回。

语法

以下是include()的语法

string.includes(searchvalue, start)

示例

在下面的例子中,我们正在运行一个脚本,通过使用map()来比较两个数组。 和include()

<!DOCTYPE html>
<html>
<body>
   <script>
      const arr1 = [
         { "car": "Bmw"},
         { "car": "BENZ"},
         { "car": "Audi"},
         { "car": "Jaguar"}
      ];
      const arr2 = [
         { "car": "Audi"},
         { "car": "City"},
         { "car": "Jaguar"},
         { "car": "Verna" }
      ];
      const extractValue = ({ 'car': car }) => car;
      const duplicateValues = arr1
      .map(extractValue)
      .filter(x => arr2
         .map(extractValue)
         .includes(x)
      );
      document.write(JSON.stringify(duplicateValues));
   </script>
</body>
</html>

当脚本被执行时,它将产生一个由array组成的输出。 互相比较,并提供新的*数组。

示例

考虑下面的例子,我们使用的是交集;在这种情况下,它首先寻找最长的数组。 来进行内部搜索。

<!DOCTYPE html>
<html>
<body>
   <script>
      const first = [
         { "bike": "Rx100"},
         { "bike": "R15"},
         { "bike": "Revolt"},
         { "bike": "Duke"}
      ]
      const second = [
         { "bike": "Deluxe"},
         { "bike": "Rx100"},
         { "bike": "Splendor"}
      ]
      const intersection = (longer, shorter, key) => {
         let tmp;
         if (shorter.length > longer.length) {
            tmp = shorter, shorter = longer, longer = tmp;
         }
         const vals = shorter.map(entry => entry[key]);
         return longer.filter(entry => vals.find(v => v ===entry[key]));
      }
      const key = 'bike';
      const third = intersection(first, second, key);
      document.write(JSON.stringify(third.flatMap(Object.values)));
   </script>
</body>
</html>

在运行上述脚本时,将弹出输出窗口,显示array。 这是由运行脚本时触发的事件引起的。

示例

让我们看看下面的例子,我们使用的是Array.filter。 来运行第一个数组,并返回在第二个数组中发现的值。

<!DOCTYPE html>
<html>
<body>
   <script>
      const array1 = [
         { "movie": "Balu"},
         { "movie": "Gabbar"},
         { "movie": "Bheem"},
      ];
      const array2 = [
         { "movie": "Jalsa"},
         { "movie": "Balu"},
      ];
      const array2String = JSON.stringify(array2);
      const duplicates = array1.filter(x =>array2String.includes(JSON.stringify(x)));
      document.write(JSON.stringify(duplicates))
   </script>
</body>
</html>

当脚本被执行时,事件被触发,它比较脚本中使用的两个数组,并返回在网页浏览器上发现的两个数组之间的值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程