为什么_sortBy不能用大写字母?

时间:2016-05-04 06:47:37

标签: javascript jquery lodash

我有一个阵列。我需要使用lodash对该数组进行排序。我使用_.sortBy,但它没有排序大写字符串,为什么?

这是我的代码:https://jsfiddle.net/2q9cdjug/

var arr = [
    { name: "pq" },
    { name: "ab" },
    { name: "QE" }  
]
var a = _.sortBy(arr, 'name');
console.log(a)

2 个答案:

答案 0 :(得分:1)

但它没有排序大写字母串为什么?

因为'a' !== 'A'

您可以使用回调函数,因此您可以使用toLowerCase()toUpperCase()转换为相同的案例对其进行排序

a = _.sortBy(arr, function (x) {
    return x.name.toLowerCase();
});

DEMO

答案 1 :(得分:0)

这是因为ascii字符表

编辑:javascript使用utf-16,而不是下表(utf-8),但这是一个很好的例子,因为utf-16表很长

enter image description here

a为97,A为65

如果您尝试console.log("a" > "A") //true 排序字符串应为小写