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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。