在 JavaScript 中创建另一个数组的重复值数组
在给定的问题陈述中,我们被要求借助 javascript 功能创建另一个数组的重复值数组。当我们谈论数组中的重复值时,意味着我们必须找到第一个数组中存在的确切元素。
JavaScript 中的数组是什么?
让我们了解 JavaScript 中数组的工作原理。
数组是存储多个元素的对象。在编程中,数组是同一屋檐下类似数据元素的集合。由于数组也是一个对象,因此它具有一些属性和方法,可以在 JavaScript 中更轻松地使用数组。在数组上,我们可以执行 filter() 和 indexOf() 方法。
以下是在 JavaScript 中定义列表的语法:−
Array = [ 201, 202, 405 ]
理解逻辑
要在 javascript 中定义具有相同项目的重复数组数组,我们可以结合使用 filter() 和 indexOf() 数组方法。我们将有两个数组 arr1 和 arr2。现在我们必须找到两个数组中都存在的值。因此,我们将在 arr1 上使用 filter() 方法,并借助 indexOf() 方法检查 arr2 中是否存在该值。然后 indexOf() 方法将返回除 −1 之外的值,这意味着该值存在于 arr2 中。然后我们将它添加到 duplicates 数组中。
最后,相同的数组将包含 arr1 和 arr2 之间的所有元素。
算法
步骤 1 :声明一个名为 itemSearch 的函数,以列表和要搜索的元素作为参数。
步骤 2 :声明左指针变量和右指针变量以查找搜索元素的确切位置。
步骤 3 :我们在步骤 1 中声明的函数基本上是一个递归函数。该函数使用其中的 while 循环工作。此循环将一直运行,直到左侧元素小于或等于右侧元素为止。
步骤 4:现在继续,在 while 循环之后,我们将通过将左侧和右侧元素相加并将和除以 2 来计算中间元素。所以在这一步中,我们得到了中间元素。
步骤 5:需要针对该特定中间元素递归执行以下步骤 4。接下来,我们将检查搜索项是小于还是大于中间项。如果它小于搜索词,则在列表左侧找到它,否则在中间元素的右侧搜索。
步骤 6:现在为了检查搜索词,我们将使用中间变量来检查中间元素的条件。如果 middleElement 小于搜索项,则将中间计数增加 1。否则将中间计数减少 1。
步骤 7 :递归二分查找的工作方式如下。现在在此步骤中定义一个排序列表和搜索项,并调用函数获取输出。
示例
// 定义两个数组用于重复项
const arr1 = [11, 12, 13, 14, 15, 16, 17, 18, 19];
const arr2 = [13, 16, 19, 2];
// 定义一个对象来查找重复项
const duplicates = arr1.filter((value) => {
return arr2.indexOf(value) !== -1;
});
// 显示输出
console.log(duplicates);
输出
[ 13, 16, 19 ]
上面给出的代码是阅读问题陈述时想到的最简单的代码,但如果您掌握了其背后的理论,则可以简化和调整它以最有效地利用时间和空间。
上面的代码中声明了两个名为 arr1 和 arr2 的数组,每个数组都有一些相似的值。查找重复项并创建这些元素的另一个数组是我们的责任。
因此,我们将利用"filter"和"indexOf"方法来创建重复项数组。
时间复杂度
执行特定函数或语句组所需的时间量由算法测量。此外,它基于函数输入的大小。在我们的例子中,算法所需的时间为 O(n),其中 n 是数组中的条目数。
算法的空间复杂度是存储输出所需内存量的度量。它通常以内存位置的数量来计算。这些是完成执行所必需的。
结论
这是在 JavaScript 中为数组中的元素创建重复数组的最简单、最可靠的方法,即借助 filter() 和 indexOf() 方法。我们得出的结论是,算法是计算机科学中非常重要的过程。在我们的问题中,我们看到了一种解决问题的简单算法,并在经过逻辑思考后编写了代码。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

