我需要使用underscore.js按升序对数组进行排序。它几乎为我工作,但问题何时发生 排序名称包含大写字母,大写字母名称在排序顺序中排在第一位。你能帮我解决这个问题。 Tahank你。
尝试以下
connectors = [
{
"name": "ajax"
},
{
"name": "jquery"
},
{
"name": "FGJDE"
}
]
sorted = _.sortBy(connectors, 'name');
预期输出
connectors = [
{
"name": "ajax"
},
{
"name": "FGJDE"
},
{
"name": "jquery"
}
]
我的排序错误如下
connectors = [
{
"name": "FGJDE"
},
{
"name": "ajax"
},
{
"name": "jquery"
}
]
答案 0 :(得分:2)
你可以这样做
connectors = [{
"name": "ajax"
}, {
"name": "jquery"
}, {
"name": "FGJDE"
}]
sorted = _.sortBy(connectors, function (text) { return text.name.toLowerCase(); });
console.log(sorted);
以下是jsFiddle
答案 1 :(得分:1)
为什么不使用String#localeCompare
呢?
var connectors = [{ "name": "ajax" }, { "name": "jquery" }, { "name": "FGJDE" }];
connectors.sort(function (a, b) {
return a.name.localeCompare(b.name);
});
console.log(connectors);