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" }]
相關用法
- underscore.js _.size()用法及代碼示例
- underscore.js _.second()用法及代碼示例
- underscore.js _.splitAt()用法及代碼示例
- underscore.js _.splat()用法及代碼示例
- underscore.js _.seq()用法及代碼示例
- underscore.js _.selectKeys()用法及代碼示例
- underscore.js _.snapshot()用法及代碼示例
- underscore.js _.strContains()用法及代碼示例
- underscore.js _.sneq()用法及代碼示例
- underscore.js _.sub()用法及代碼示例
- underscore.js _.sortedindex()用法及代碼示例
- underscore.js _.sample()用法及代碼示例
- underscore.js _.sortBy用法及代碼示例
- underscore.js _.some用法及代碼示例
- underscore.js _.size用法及代碼示例
- underscore.js _.delay()用法及代碼示例
- underscore.js _.difference()用法及代碼示例
- underscore.js _.flatten()用法及代碼示例
- underscore.js _.initial()用法及代碼示例
- underscore.js _.zip()用法及代碼示例
- underscore.js _.wrap()用法及代碼示例
- underscore.js _.without()用法及代碼示例
- underscore.js _.last()用法及代碼示例
- underscore.js _.isRegExp()用法及代碼示例
- underscore.js _.union()用法及代碼示例
注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js _.shuffle Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。