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


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


_.sortedIndex() 函數:

  • 它決定了要插入到傳遞數組中的新元素的順序,數組保持排序順序。
  • 它用於您想要向數組添加新元素但不知道在哪裏添加它的情況,即在什麽位置以使數組排序。
  • 它不僅限於數字列表,還限於包含字符等的其他列表。

用法:

_.sortedIndex(array, value, [iteratee], [context])

參數:
它需要三個參數:

  • array
  • value
  • iteratee (optional)

返回值:
它返回新元素應該在數組中的索引,以便數組保持排序。

例子:

  1. 將數字列表傳遞給 _.sortedIndex() 函數:
    ._sorted() 函數一個一個地從列表中取出元素,並檢查該元素是否小於新元素。如果小於,則忽略它,_.sortedIndex() 會檢查列表中的下一個元素。否則,如果元素更大,則此函數返回此元素的索引。這意味著新元素應該出現在這個索引處,並且從這個索引開始的元素首先需要向後移動一步,以便為新元素騰出空間。
    
    <!-- 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(_.sortedIndex([1, 2, 4, 5, 6], 3));
        </script>
    </body>
       
    </html>

    輸出:

  2. 將另一個數字列表傳遞給 _.sortedIndex() 函數:
    我們可以將任意長度的數組傳遞給 _.sortedIndex() 函數。它將執行二進製搜索以找到新元素的位置。在二進製搜索中,將數組中的所有元素與新元素進行比較,以找到它的新索引。最後,console.log() 找到了新的索引。
    
    <!-- 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(_.sortedIndex([1, 2, 3, 4, 5, 6, 8], 7));
        </script>
    </body>
       
    </html>

    輸出:

  3. 將結構傳遞給 _.sortedIndex() 函數:
    我們甚至可以傳遞一個包含多個屬性鍵的結構。在此我們需要提及我們要根據哪個鍵來執行二分搜索。就像下麵的例子一樣,我們有 2 個鍵,分別是 name 和 sal。後來我們在提到我們需要插入的元素後,將sal屬性作為比較參數傳遞。
    
    <!-- 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(_.sortedIndex([{name:'amit', sal:40000},
                                       {name:'ankit', sal:60000}, 
                                       {name:'anju', sal:80000}], 
                                       {name:'akash', sal:70000}, 
                                                           'sal'));
        </script>
    </body>
       
    </html>

    輸出:

  4. 對字符應用搜索:
    我們甚至可以對字符而不是數字執行二進製搜索。在此我們傳遞一個具有 3 個屬性的結構,name、rollNo 和 section。在此我們傳遞包含字符的比較的第三個屬性。結果將以類似的方式出現,沒有錯誤。
    
    <!-- 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(_.sortedIndex([{name:'akansha', rollNo:01, section:'a'},
                                       {name:'aishwarya', rollNo:02, section:'b'},
                                       {name:'anjali', rollNo:03, section:'d'}],
                                       {name:'preeti', rollNo:04, section:'c'}, 
                                                                      'section'));
        </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 _.sortedindex() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。