理解这个jQuery .shuffle()插件或函数

时间:2015-05-11 16:25:12

标签: javascript jquery

有谁能帮我理解这个jQuery插件的工作原理。我不明白这个.shuffle()方法是如何工作的。这里还有JSbin链接http://jsbin.com/yefofulohu/2/edit

#pragma once

#define TYPE int
#include "myheader.h"
#undef TYPE

1 个答案:

答案 0 :(得分:0)

了解for循环的语法将有助于您了解正在发生的事情:

for(INIT (optional); CONDITION (optional); FINAL EXPRESSION (optional))
   STATEMENT (optional)

虽然for循环通常与特定语法(var i = 0; i < arr.length; i++)一起使用,但您可以省略任何或所有表达式(如此函数的作者所做的那样)并且还可以执行以下操作每个表达式中的单个操作。以下是评论的$.shuffle函数的详细版本:

$.shuffle = function(arr) {
    for(var i = arr.length; i > 0; i--) {
      // get random index
      var j = parseInt(Math.random() * i);
      // x = next element
      var x = arr[ i - 1 ];
      // next element = random element
      arr[ i - 1 ] = arr[j];
      // random element = next element's previous value
      arr[j] = x;
    }
    return arr;
}

他们选择在CONDITION表达式中检查i(因为它们正在递减,循环将停止在0),而不是这种长形式方法最终表达中的减量和分配。