是否有一种方法可以使用_.sortBy方法或库中的任何其他部分来直接完成这个功能?
是否有一种方法可以使用_.sortBy方法或库中的任何其他部分来直接完成这个功能?
var array = [
{ name: "banana" },
{ name: "carrot" },
{ name: "apple" }
];
var sorted = _(array).sortBy("name");
我觉得它可以直接使用。
如果您想对普通的字符串数组进行排序,您可能只需要使用sort
:
var flatArray = ["banana", "carrot", "apple"];
flatArray.sort();
见这里。同样适用。
请注意,Underscore的sortBy
返回一个已排序的新数组,而JavaScript内置的sort
函数会就地对数组进行排序。
sortBy
比较函数遵循标准的字母数字排序是相当合理的(即在您的Web控制台中尝试'a'<'A'
与'A'<'a'
)。如果您想要不区分大小写的排序,可以提供一个函数来首先调用toLowerCase
处理值,就像这样:http://jsfiddle.net/uHtUX/40/。 - Dan Tao由于您在问题上打了backbone.js标签,我假设您的意思是要对集合进行排序,您只需要在集合上提供比较函数,backbone将保持集合排序。
如果您的问题是特定的字母顺序排序,我相信这是默认排序方式,来自backbone.js文档(我在上面链接到了它)。
chapters.comparator = function(chapter) {
return chapter.get("page");
};