如何在JavaScript中通过递归的indexOf()函数返回正确值
许多编程语言中都有递归这个概念或思想,其中包括JavaScript。这是一种特性,用于构建一个函数,该函数不断调用自身,但每次输入较小,直到代码的预期结果实现为止。
在本文中,我们将介绍如何在JavaScript中通过递归的indexOf()函数返回正确值。让我们深入了解。
通过递归indexOf()函数获取准确值
indexOf()方法返回字符串中第一个元素的位置。如果找不到该值,indexOf()方法返回-1。 indexOf() 是区分大小写的。
语法
以下是indexOf()的语法 –
indexOf(searchElement)
indexOf(searchElement, fromIndex)
让我们通过以下示例来更好地理解如何从递归的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”的输出,显示在网页上。