JavaScript 创建另一个数组的重复值数组

JavaScript 创建另一个数组的重复值数组

在给定的问题陈述中,我们被要求使用JavaScript的功能来创建另一个数组的重复值数组。当谈到数组中的重复值时,意味着我们需要找到第一个数组中存在的确切元素。

什么是JavaScript中的数组

让我们了解一下JavaScript中数组的工作原理。

数组是一个存储多个元素的对象。在编程中,数组是在一个地方集合相似数据元素的集合。由于数组也是一个对象,它具有一些属性和方法,可以更轻松地在JavaScript中处理数组。我们可以对数组执行filter()和indexOf()方法。

以下是在JavaScript中定义列表的语法:-

Array = [ 201, 202, 405 ]

理解逻辑

在javascript中,要定义一个包含重复数组和相同项目的数组,我们可以使用filter()和indexOf()数组方法的组合。我们将有两个数组arr1和arr2。现在我们必须找到同时存在于这两个数组中的值。因此,我们将在arr1上使用filter()方法,并使用indexOf()方法检查arr2中是否存在该值。然后,indexOf()方法将返回一个不是-1的值,这意味着该值存在于arr2中。然后我们将把它添加到重复数组中。

最后,相同数组将包含arr1和arr2之间的所有元素。

算法

步骤1: 声明一个名为itemSearch的函数,接受一个列表和要搜索的元素作为参数。

步骤2: 声明左指针和右指针变量,以找到搜索元素的确切位置。

步骤3: 我们在步骤1中声明的函数基本上是一个递归函数。该函数内部使用一个while循环。该循环将在左元素小于或等于右元素时运行。

步骤4: 现在,循环结束后,我们将通过将左和右元素相加并将其除以2来计算中间元素。因此,在这一步中,我们得到了中间元素。

步骤5: 下面的步骤4需要递归地执行给定的中间元素。接下来,我们将检查搜索项是小于还是大于中间项。如果搜索项小于搜索项,则在列表的左侧找到它,否则在中间元素的右侧搜索。

步骤6: 现在,为了检查搜索项,我们将使用中间变量来与中间元素进行比较。如果middleElement小于搜索项,则将中间计数增加1。否则,将中间计数减1。

步骤7: 这就是递归二分搜索的工作原理。现在,在这一步中,定义一个已排序的列表和搜索项,并调用函数以获得输出。

示例

// define two array for duplicates
const arr1 = [11, 12, 13, 14, 15, 16, 17, 18, 19];
const arr2 = [13, 16, 19, 2];

// define an object to find duplicates
const duplicates = arr1.filter((value) => {
  return arr2.indexOf(value) !== -1;
});

// show output
console.log(duplicates);

输出

[ 13, 16, 19 ]

给出的代码是在阅读问题陈述时脑海中最直接的代码,但如果掌握了其背后的理论,可以简化和调整它,以最有效地利用时间和空间。

在上面的代码中,声明了两个名为arr1和arr2的数组,其中包含一些相似的值。我们的责任是找到重复的值,并生成另一个数组。

因此,我们将利用”filter”和”indexOf”方法创建一个包含重复元素的数组。

时间复杂度

算法执行特定函数或一组语句所需的时间量是通过算法来衡量的,此外,它基于函数的输入大小。在我们的情况下,算法所需的时间是O(n),其中n是数组中的条目数。

而算法的空间复杂度是需要存储输出的内存量的度量标准,通常以内存位置的数目来衡量。这些位置是完成执行所需的。

结论

在JavaScript中,创建一个包含数组中元素的重复项的数组的最简单和可靠的方法是利用filter()和indexOf()方法。我们得出结论,算法在计算机科学中是非常重要的过程。在我们的问题中,我们已经看到了一个简单的算法来解决问题,并根据逻辑思考进行了编码。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程