如何在 JavaScript 中基于迭代器函数在已排序数组中获取索引?
迭代器函数用于迭代数组、列表和其他数据结构。在 JavaScript 中,有多种方法可以获取应将值插入已排序数组的索引。
使用 Array sort() 和 indexOf() 方法
sort() 方法可用于按升序或降序对数组进行排序。默认排序顺序为升序,因此,如果要获取应将值插入已排序数组的索引,可以使用带比较函数的 sort() 方法。数组排序后,我们可以应用 indexOf() 方法来查找要插入数组的值的索引。
语法
function compare(a, b) { return a - b; } arr.sort(compare); var index = arr.indexOf(num);
比较函数 “compare” 接受两个参数 a 和 b,如果 a 大于 b,则返回正数;如果 a 小于 b,则返回负数;如果 a 等于 b,则返回 0。arr 是我们要插入值 num 的原始数组。
算法
步骤 1 - 定义比较函数。
步骤 2 - 创建名为 arr 的数组并为其赋值。
步骤 3 - 创建名为 num 的变量。我们需要在数组 arr 中查找此元素的索引。
步骤 4 - 使用 arr.sort() 方法根据比较函数对数组进行排序。
步骤 5 - 使用 arr.indexOf(num) 查找应在已排序数组中插入 num 的索引。
步骤 6 - 使用 innerHTML 属性在窗口屏幕上显示索引。
示例
例如,如果您有一个数字数组,并且想要获取应将给定数字按升序插入数组的索引,可以使用以下比较程序。
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <h3>Using the Array sort() and indexOf() Methods</h3> <p>The index in the sorted array</p> <div id="result"></div> <script> function compare(a, b) { return a - b; } var arr = [1, 2, 3, 4, 5]; var num = 3; arr.sort(compare); var index = arr.indexOf(num); document.getElementById("result").innerHTML = index </script> </body> </html>
使用 findIndex() 方法
findIndex() 方法可用于查找数组中第一个满足给定条件的元素的索引。例如,如果您有一个数字数组,并且想要获取应将给定数字按升序插入数组的索引,可以使用以下比较函数:
示例
在下面的示例中,我们使用 findIndex() 方法获取值 num 的索引。
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <h3>Using the findIndex() Method</h3> <p>The index to that the value to be inserted</p> <div id="result"></div> <script> function compare(a, b) { return a - b; } var arr = [1, 2, 3, 4, 5]; var num = 3; var index = arr.findIndex(compare); document.getElementById("result").innerHTML = index </script> </body> </html>
在 JavaScript 中,有多种方法可以获取应将值插入已排序数组的索引。您可以使用带比较函数的 sort() 方法,也可以使用带比较函数的 binarySearch() 方法。
广告