当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。