如何在 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”,並在網頁上顯示。

更新於: 2023年4月21日

296 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.