排序元素jQuery插件,随机排序

时间:2014-07-10 16:21:30

标签: javascript jquery sorting

我正在使用这个jQuery插件来排序元素: http://james.padolsey.com/javascript/sorting-elements-with-jquery/

它适用于此代码:

function sortGallery(element, sorting) {

    $('input.sort').removeClass('active');
    $(element).addClass('active');

    if (sorting === 'bydate') {
        $('#gallery-js > div').sortElements(function(a, b){
            return $(a).find('img').attr('data-date') < $(b).find('img').attr('data-date') ? 1 : -1;
        });
    } else if (sorting === 'random') {
        console.log('TODO');
    }
}

问题是我不理解return语句。有人能告诉我&#34;随机&#34;的返回值。部分应该看起来如果可能的话简短说明它是如何工作的?

1 个答案:

答案 0 :(得分:2)

好的,首先您可能想了解Array#sort的工作原理。

在文档中,他们提供此代码作为排序顺序如何工作的示例

function compare(a, b) {
   if (a is less than b by some ordering criterion)
       return -1;
   if (a is greater than b by the ordering criterion)
       return 1;
   // a must be equal to b
   return 0;
}

由于您只想随机排序,我们需要做的就是生成一个从-1到1的随机整数

function randomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}

然后你只需调用这个方法

} else if (sorting === 'random') {
    return randomInt(-1, 1);
}