當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


underscore.js _.findIndex()用法及代碼示例


_.findIndex() 函數:

  • 它用於查找在第二個參數中傳遞的元素的索引。
  • 我們可以將它用於任何類型的數組,如數字數組、字符串數組、字符數組等。
  • 如果我們不知道數組中的所有元素是什麽,但我們想知道是否存在單個元素,那麽我們使用這個函數。

用法:

_.findIndex(array, predicate, [context])

參數:
它需要三個參數:

  • array
  • predicate
  • context (optional)

返回值:
它返回要搜索的元素所在的索引。

例子:

  1. 將僅包含一個鍵及其值的列表傳遞給 _.findIndex() 函數:
    ._findIndex() 函數從列表中一一獲取元素,並將其與作為第二個參數傳遞的元素進行比較。如果它們匹配,那麽它返回它的索引,否則它隻是跳過這個元素並繼續下一個。這個過程一直持續到找不到匹配項或列表完成。如果列表完成但沒有找到傳遞的元素,則結果為 -1。
    
    <!-- Write HTML code here -->
    <html>
       
    <head>
        <script src = 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
        </script>
    </head>
       
    <body>
        <script type="text/javascript">
            console.log(_.findIndex([{rollNo:1}, {rollNo:2},
            {rollNo:3}], { rollNo:1}));
        </script>
    </body>
       
    </html>

    輸出:

  2. 將完整結構傳遞給 _.findIndex() 函數:
    我們甚至可以將具有許多屬性的結構傳遞給 _.findIndex() 函數,它會以相同的方式工作。為此,我們還需要提及需要比較哪些屬性。就像下麵的例子一樣,數組有 3 個屬性,is、name、last。其中我們已經提到我們想要比較並找出名字為“Teddy”的元素的索引。
    
    <!-- Write HTML code here -->
    <html>
       
    <head>
        <script src = 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
        </script>
    </head>
       
    <body>
        <script type="text/javascript">
            var users = [{'id':1, 'name':'Bobby', 'last':'Stark'},
                 {'id':2, 'name':'Teddy', 'last':'Lime'},
                 {'id':3, 'name':'Franky', 'last':'Frail'},
                 {'id':4, 'name':'Teddy', 'last':'Frail'}];
            console.log(_.findIndex(users, { name:'Teddy'}));
        </script>
    </body>
       
    </html>

    輸出:

  3. 將屬性與數字進行比較:
    在這裏,我們傳遞了與上麵相同的結構,但我們使用屬性來匹配和比較包含數字的 ‘id’。它將以相同的方式工作並比較所有 id,直到我們得到第二個參數中提到的 ‘3’ 的 id。
    
    <!-- Write HTML code here -->
    <html>
       
    <head>
        <script src = 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
        </script>
    </head>
       
    <body>
        <script type="text/javascript">
            var users = [{'id':1, 'name':'Bobby', 'last':'Stark'},
                 {'id':2, 'name':'Teddy', 'last':'Lime'},
                 {'id':3, 'name':'Franky', 'last':'Frail'},
                 {'id':4, 'name':'Teddy', 'last':'Frail'},
                 {'id':3, 'name':'Tinu', 'last':'Thauus'}];
            console.log(_.findIndex(users, { id:3}));
        </script>
    </body>
       
    </html>

    輸出:

  4. 在第二個參數中傳遞列表中不存在的元素:
    如果我們傳遞一個列表不包含的元素,那麽結果將是一個負數 -1。不會有錯誤。這是列表結束但元素不存在於其中的情況。
    
    <!-- Write HTML code here -->
    <html>
       
    <head>
        <script src = 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
        </script>
    </head>
       
    <body>
        <script type="text/javascript">
            var users = [{'id':1, 'name':'Bobby', 'last':'Stark'},
                 {'id':2, 'name':'Teddy', 'last':'Lime'},
                 {'id':3, 'name':'Franky', 'last':'Frail'},
                 {'id':4, 'name':'Teddy', 'last':'Frail'},
                 {'id':3, 'name':'Tinu', 'last':'Thauus'}];
            console.log(_.findIndex(users, { id:100}));
        </script>
    </body>
       
    </html>

    輸出:

筆記:
這些命令在 Google 控製台或 Firefox 中不起作用,因為需要添加他們沒有添加的這些附加文件。
因此,將給定的鏈接添加到您的 HTML 文件中,然後運行它們。
鏈接如下:


<!-- Write HTML code here -->
<script type="text/javascript" 
src ="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
</script>

一個例子如下所示:




相關用法


注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js _.findIndex() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。