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


underscore.js _.shuffle用法及代码示例


Underscore.js _.shuffle()函数用于以随机方式排列数组列表。这个_.shuffle()下划线函数使用费舍尔耶茨洗牌这将在下面提到的文章中讨论。因此,每次我们使用此函数时,根据 Fisher Yates Shuffle,该函数的输出都会有所不同。

用法:

_.shuffle(list)

参数:该函数接受单个参数List。该参数用于保存将被打乱的项目列表。

返回值:返回的值是新的随机数组,其中包含传递给 _.shuffle() 函数的原始数组中的所有元素。

向_.shuffle()函数传递一个数值数组:._shuffle()函数从列表中一一取出元素,并根据fisher Yates Shuffle进行指定操作。那么 console.log() 就是最终答案,它将包含随机问题中原始数组的所有元素。

例子:

html


<script src= 
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
</script> 
  
<script type="text/javascript"> 
    console.log(_.shuffle(_.shuffle([1, 2, 3, 4, 5, 6]))); 
</script>

输出:每次运行代码时,输出都会打乱。

[1, 2, 3, 6, 5, 4] //1st time
[3, 6, 2, 4, 5, 1] //2nd time
[5, 6, 1, 4, 3, 2] //3rd time

将结构传递给 _.shuffle() 函数: 将结构传递给 _.shuffle() 函数。首先,声明数组,如下所示,数组为 ‘goal’,然后将此数组传递给 _.shuffle() 函数。 ‘goal’ 数组的元素及其所有属性将被打乱。

例子:此示例演示了 above-used 方法。

html


<script src= 
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
</script> 
  
<script type="text/javascript"> 
    var goal = [ 
    { 
        "category" : "other", 
        "title" : "harry University", 
        "value" : 50000, 
        "id":"1" 
    }, 
    { 
        "category" : "travelling", 
        "title" : "tommy University", 
        "value" : 50000, 
        "id":"2" 
    }, 
    { 
        "category" : "education", 
        "title" : "jerry University", 
        "value" : 50000, 
        "id":"3" 
    }, 
    { 
        "category" : "business", 
        "title" : "Charlie University", 
        "value" : 50000, 
        "id":"4" 
    } 
            ] 
            console.log(_.shuffle(goal)); 
</script>

输出:每次运行代码时,输出都会打乱。

[[object Object] {
  category: "business",
  id: "4",
  title: "Charlie University",
  value: 50000
}, [object Object] {
  category: "travelling",
  id: "2",
  title: "tommy University",
  value: 50000
}, [object Object] {
  category: "education",
  id: "3",
  title: "jerry University",
  value: 50000
}, [object Object] {
  category: "other",
  id: "1",
  title: "harry University",
  value: 50000
}]

将一个属性为 true/false 的列表传递给 _.shuffle() 函数:首先,声明数组(此处数组为‘people’)。选择一个需要检查的条件,例如此处的“hasLongHairs”。 Console.log最终答案。最终答案将是一个随机数组,因为 Fisher yates shuffle 在其算法中使用了随机函数。

例子:此示例演示了 above-used 方法。

html


<script src= 
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
</script> 
  
<script type="text/javascript"> 
    var people = [ 
    {"name": "sakshi", "hasLong": "false"}, 
    {"name": "aishwarya", "hasLong": "true"}, 
    {"name": "akansha", "hasLong": "true"}, 
    {"name": "preeti", "hasLong": "true"} 
            ] 
            console.log(_.shuffle(people, 'name')); 
</script>

输出:每次运行代码时,输出都会打乱。

[[object Object] {
  hasLong: "true",
  name: "preeti"
}, [object Object] {
  hasLong: "true",
  name: "akansha"
}, [object Object] {
  hasLong: "false",
  name: "sakshi"
}, [object Object] {
  hasLong: "true",
  name: "aishwarya"
}]

声明一个数组,然后将其传递给 _.shuffle() 函数: 声明一个属性为 ‘num’ 的数组 let ‘users’,然后将其传递给 _.shuffle() 函数。然后console.log新的随机数组。每次运行时的输出都会不同。

例子:此示例演示了 above-used 方法。

html


<script src= 
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
</script> 
  
<script type="text/javascript"> 
    var users = [{"num":"1"}, {"num":"2"}, {"num":"3"},  
                 {"num":"4"}, {"num":"5"}]; 
            console.log(_.shuffle(users, 'id')); 
</script>

输出:每次运行代码时,输出都会打乱。

[[object Object] {
  num: "5"
}, [object Object] {
  num: "4"
}, [object Object] {
  num: "3"
}, [object Object] {
  num: "1"
}, [object Object] {
  num: "2"
}]


相关用法


注:本文由纯净天空筛选整理自Sakshi98大神的英文原创作品 Underscore.js _.shuffle Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。