使用underscore.js对数组升序进行排序

时间:2016-07-25 09:56:52

标签: javascript underscore.js lodash

我需要使用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"
    }
]

2 个答案:

答案 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);