_.sortedIndex() 函數:
- 它決定了要插入到傳遞數組中的新元素的順序,數組保持排序順序。
- 它用於您想要向數組添加新元素但不知道在哪裏添加它的情況,即在什麽位置以使數組排序。
- 它不僅限於數字列表,還限於包含字符等的其他列表。
用法:
_.sortedIndex(array, value, [iteratee], [context])
參數:
它需要三個參數:
- array
- value
- iteratee (optional)
返回值:
它返回新元素應該在數組中的索引,以便數組保持排序。
例子:
- 將數字列表傳遞給 _.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>
輸出:
- 將另一個數字列表傳遞給 _.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>
輸出:
- 將結構傳遞給 _.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>
輸出:
- 對字符應用搜索:
我們甚至可以對字符而不是數字執行二進製搜索。在此我們傳遞一個具有 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>
一個例子如下所示:
相關用法
- Lodash _.sortedIndex()用法及代碼示例
- p5.js year()用法及代碼示例
- d3.js d3.utcTuesdays()用法及代碼示例
- d3.js d3.map.set()用法及代碼示例
- Tensorflow.js tf.layers.embedding()用法及代碼示例
- d3.js d3.bisectLeft()用法及代碼示例
- p5.js removeElements()用法及代碼示例
- p5.js quad()用法及代碼示例
- d3.js geoCylindricalStereographic()用法及代碼示例
- Tensorflow.js tf.selu()用法及代碼示例
- Tensorflow.js tf.io.removeModel()用法及代碼示例
- Tensorflow.js tf.relu6()用法及代碼示例
- Javascript Math.ceil( )用法及代碼示例
注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js _.sortedindex() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。