如何按每个对象内的特定键的alpha排序数组?

时间:2016-06-23 14:13:39

标签: javascript arrays sorting lodash

我的Array =

的示例
[{
    name: leon,
    id: 1
}, {
    name: laura
    id: 20003
}, {
    name: anne
    id: 45
}]

目前在UI中,数组将如下所示:

  • 莱昂
  • 劳拉

如何使用lodash按字母顺序按name键对数组进行排序?

4 个答案:

答案 0 :(得分:1)

_.sortBy(myObjects, 'name');

名称是此处的排序键

答案 1 :(得分:1)

你不需要lodash这样做......

只做

var sortedNames = names.sort(function(a, b) {
  return a.name.localeCompare(b.name);
});

jsFiddle:https://jsfiddle.net/p07c4oaa/

或者将其包装在像以下的函数中:

function sortBy(obj, key) {
  return obj.sort(function(a, b) {
    return a[key].localeCompare(b[key]);
  });
}

jsFiddle:https://jsfiddle.net/p07c4oaa/1/

答案 2 :(得分:1)

您可以使用正确的回调。

var array = [{ name: 'leon', id: 1}, { name: 'laura', id: 20003}, { name: 'anne', id: 45}];

array.sort(function (a, b) {
    return a.name.localeCompare(b.name);
});

console.log(array);

答案 3 :(得分:0)

不确定loadash但您可以使用简单的sort方法对json对象数组进行排序

var arry=[{
    name: 'leon',
    id: 1
}, {
    name: 'laura',
    id: 20003
}, {
    name: 'anne',
    id: 45
}]
var sorted = arry.sort(function(a,b){
return a.name > b.name ? 1:-1
})
// this part just for demo

sorted.forEach(function(item){
document.write('<pre>'+item.name+'</pre>')

})

JSFIDDLE