如何在 JavaScript 中从递归 indexOf 函数返回正确的值?
递归是一种在许多编程语言(包括 JavaScript)中存在的计算机模式或概念。它是一种用于构建一个函数的功能,该函数会重复调用自身,但每次都使用更小的输入,直到代码的预期结果实现。
在本文中,我们将从 JavaScript 中的递归 **indexof()** 函数返回正确的值。让我们深入了解文章以更好地理解。
从递归 indexof() 函数获取准确值
**indexOf()** 方法返回字符串中某个值第一次出现的索引位置。如果找不到该值,则 **indexOf()** 方法返回 -1。**indexof()** 区分大小写。
语法
以下是 **indexof()** 的语法:
indexOf(searchElement) indexOf(searchElement, fromIndex)
让我们看看以下示例,以更深入地了解如何在 JavaScript 中从递归 **indexof()** 返回正确的值。
示例
在以下示例中,我们正在运行脚本以获取递归 indexof() 的值。在这种情况下,我们将获取元素“c”的索引。
<!DOCTYPE html> <html> <body style="background-color:#EAFAF1"> <script> function search(array, value) { if (array[0] === value) { return 0; } if (array.length === 0) { return -1; } const result = search(array.slice(1), value); return result === -1 ? -1 : result + 1; } document.write("The indexof c was:" + search(["a", "b", "c", "d"], "c"), ); </script> </body> </html>
当脚本执行时,它将生成一个输出,其中包含在网页上显示的“c”的索引值。
示例
考虑以下示例,其中我们通过声明一个数组来运行脚本,获取元素“Vespa”的 **indexof()**(该元素未在数组中声明),并返回递归 **indexof()** 的值。
<!DOCTYPE html> <html> <body style="background-color:#E8DAEF"> <p id="tutorial"></p> <script> function search(arr, value, i = 0) { if (i >= arr.length) return -1; if (arr[i] === value) return i; return search(arr, value, i + 1); } let array = ["Raj", "Kamal", "Vikram", "Ravi"]; document.getElementById("tutorial").innerHTML="The indexof Vespa was: " + (search(array, "Vespa")) </script> </body> </html>
运行上述脚本后,输出窗口将弹出,显示“Vespa”的索引为“-1”,并在网页上显示。它显示为“-1”,因为未找到“Vespa”的值的索引。
示例
执行以下脚本,并观察我们将如何获取递归 **indexof()** 的正确值。
<!DOCTYPE html> <html> <body style="background-color:#CCCCFF"> <p id="tutorial"></p> <script> const array = ['Bheem', 'Nayak', 'Ravi','Dora'] const result = array.indexOf('Ravi'); document.getElementById("tutorial").innerHTML=("The indexof() of required value was:" + result) </script> </body> </html>当脚本执行时,它将生成一个输出,显示所需值的 **indexof()** 为“2”,并在网页上显示。
广告