如何使用 JavaScript 查找数组中项目之间的距离?

javascriptweb developmentobject oriented programming更新于 2024/7/15 12:28:17

在此问题陈述中,我们的目标是借助 JavaScript 查找数组中项目之间的距离。因此,为了完成此任务,我们将使用循环和变量来存储 JSON 对象中每个对象的 ID。

理解问题陈述

问题陈述是用 JavaScript 编写一个函数,通过该函数我们可以查找数组中项目之间的距离。如果我们有一个数组,则将通过从第一个项目开始计数索引号来测量距离,我们必须从该索引号开始测量距离。例如,数组为 [ 1, 2, 3, 4, 5 ],假设我们必须找到 2 到 4 之间的距离,那么距离将是 2,因为 2 之后有两个元素 3 和 4。

给定问题的逻辑

要找到数组中项目之间的距离,我们将定义距离的含义。因此,我们可以将距离定义为从数组中的一个项目移动到另一个项目所需的步数。两个相邻项目之间的距离将为 1,而数组中相距较远的两个项目之间的距离将大于 1。因此,我们将定义一个函数,并在该函数中传递三个参数:数组、第一个项目和第二个项目。借助 indexOf 方法,我们需要找到传入函数的两个项目的索引。为了计算距离,我们将找到两个项目的两个索引之间的差值。并返回距离的结果。

算法

步骤 1 − 声明一个函数来查找两个元素之间的距离,并将其命名为 findDistance。在其中传递三个参数,arr、item1 和 item2。

步骤 2 − 借助 indexOf 方法查找传入函数的两个项目的索引。

步骤 3 − 定义一个名为 distance 的变量,我们将在其中存储两个项目之间的距离。使用 Math.abs 函数并传递上面计算的两个元素的索引。

步骤 4 − 在函数末尾返回距离。

步骤 5 − 定义数组并通过调用函数来控制台输出。

算法代码

//函数用于计算两个项目之间的距离
function findDistance(arr, item1, item2) {
    let index1 = arr.indexOf(item1);
    let index2 = arr.indexOf(item2);
    let distance = Math.abs(index1 - index2);
    return distance;
}
const arr = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
console.log("两个项目之间的距离:");
console.log(findDistance(arr, 10, 50));

复杂度

所创建函数所花费的时间是 O(n),其中 n 是输入数组的长度。原因是 indexOf 方法用于搜索整个数组以查找传递项的索引。并且此过程需要在函数中执行两次。

结论

在上面的代码中,我们将数组中项之间的距离定义为在给定数组中从一个项移动到另一个项所需的步数。因此,我们使用 indexOf 方法找出两个项的索引并计算项之间的差异。时间复杂度为 O(n),其中 n 是输入数组的长度。


相关文章


有用资源