如何重载比较器以使用 UTF-8 和不同的语言环境进行排序 [英] How to overload comparator to sort with UTF-8 and different locales

查看:21
本文介绍了如何重载比较器以使用 UTF-8 和不同的语言环境进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一组数据:

["Alphabet","Zend","Ćwiczenia"]      

结果 collection.sort 我得到:["Alphabet","Zend","Ćwiczenia"].

如何重载 comarator 以使用 UTF-8 和不同的语言环境进行排序?

How to overload comparator to sort with UTF-8 and different locales?

推荐答案

你需要设置一个比较器方法 在您使用 localeCompare 作为它的排序函数.

You need to set up a comparator method on your collection that uses localeCompare as its sort function.

假设您的收藏看起来像

var c = new C([
    {name: "Alphabet"},
    {name: "Zend"},
    {name: "Ćwiczenia"}
]);

看起来像

var C = Backbone.Collection.extend({
    comparator: function(a, b) {
        return a.get('name').localeCompare(b.get('name'));
    }
});

和演示

var C = Backbone.Collection.extend({
    comparator: function(a, b) {
        return a.get('name').localeCompare(b.get('name'));
    }
});

var c = new C([
    {name: "Alphabet"},
    {name: "Zend"},
    {name: "Ćwiczenia"}
]);
console.log(c.pluck('name'))

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.3/backbone-min.js"></script>

这篇关于如何重载比较器以使用 UTF-8 和不同的语言环境进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆