我在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
属性(一个字符串)并在其上运行任意哈希以模拟任意排序。我该怎么做呢?
答案 0 :(得分:0)
如果您想要随机排序,您可以直接进行
@collection.comparator = Math.random
如果目标只是随机化,则无需散列字符串。
当然,每次调用sort()
时,上述内容都会更改排序顺序(包括将新模型添加到集合中时)。因此,如果您确实希望每次都进行相同的“随机”排序,则可以使用随机数设置属性,或者尝试the answers here之类的计算哈希值。