0

我有一个简单的功能,backbone.js可以在选择菜单项后对集合中的项目进行排序(这里称为“按价格排序”):

   setSort: (event)->
        event.preventDefault()
        event.stopPropagation()
        $target = $(event.target)
        switch $target.text()
            when "Sort by Price"
                @collection.comparator = (model)->
                    model.get("Price")
                @collection.sort()

这非常简单——它Price从集合中的各个模型中获取属性,然后对它们进行排序。这部分有效。

现在我想取一个不同的字段,一个Name属性(一个字符串)并在其上运行任意散列以模拟任意排序。我该怎么做呢?

4

1 回答 1

0

如果你想要随机排序,你可能只是做

@collection.comparator = Math.random

如果目标只是随机化,则无需散列字符串。

当然,上述每次sort()调用都会改变排序顺序(包括将新模型添加到集合中时)。因此,如果您确实想要每次都进行相同的“随机”排序,您可以使用随机数设置一个属性,或者尝试类似这里的答案来计算哈希。

于 2013-11-04T10:19:28.283 回答