如何在javascript中对这个对象数组进行排序?
问题描述:
[ { name: 'jane', id:'3' }
{ name: 'zac', id: '5' }
{ name: 'amber', id: '2 }
]
如何排序这个名称的字母顺序,升?
结果应该是:
[ { name: 'amber', id: '2' }
{ name: 'jane', id:'3' }
{ name: 'zac', id: '5' }
]
答
使用Array.sort
。您可以传递一个自定义函数来用来比较对象。要比较字符串,可以使用String.localeCompare
。把它放在一起,你会得到这样的:
var data=[
{ name: 'jane', id: 3 }
{ name: 'zac', id: 5 }
{ name: 'amber', id: 2 }
];
console.log("Unsorted:", data);
data.sort(function(a, b) {
return a.name.localeCompare(b.name);
});
console.log("Sorted:", data);
答
[{ name: 'jane', id:'3' },
{ name: 'zac', id: '5'},
{ name: 'amber', id: '2'}].sort(
function (a,b) {
return a.name.localeCompare(b.name)
}
);
我刚刚知道自己'localeCompare'。整齐。 – icktoofay