您如何以随机顺序订购AngularJS中的项目列表?我当时以为内置orderBy过滤器会起作用,但是我不确定在不向模型中添加一些其他数据的情况下如何工作。这样的东西会很棒。
orderBy
item in items | orderBy:random
我的下一个想法是创建一个自定义过滤器,但如果已有更好的选择,我宁愿避免这种情况。
编辑警告! :这些结果是歪斜的,请勿使用此结果。该答案仅作为警告,直到进一步编辑为止。 说明 :任何项目位于第一位置的机会均应相等,但是经过10,000次迭代(例如6个项目)后的实际百分比机率最终为 1:〜28%,2:〜10%,3:〜14%,4:〜20%,5:〜12%,6:〜15% https://jsfiddle.net/sh0ber/km9cqvpf/
编辑警告! :这些结果是歪斜的,请勿使用此结果。该答案仅作为警告,直到进一步编辑为止。
说明 :任何项目位于第一位置的机会均应相等,但是经过10,000次迭代(例如6个项目)后的实际百分比机率最终为
1:〜28%,2:〜10%,3:〜14%,4:〜20%,5:〜12%,6:〜15%
https://jsfiddle.net/sh0ber/km9cqvpf/
orderBy可以接受一个函数参数,就像array.sort这样,您可以使用上面的HTML并random在范围内定义一个函数,例如:
array.sort
random
$scope.random = function(){ return 0.5 - Math.random(); };
这将返回一个随机值,有时为负,有时为正,有时为0,该值将对数组进行随机排序。