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


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