如何按每个对象内特定键的 alpha 对数组进行排序?
How to sort Array by alpha of a specific key inside each object?
我的数组示例 =
[{
name: leon,
id: 1
}, {
name: laura
id: 20003
}, {
name: anne
id: 45
}]
目前在 UI 中,数组将如下所示:
- 莱昂
- 劳拉
- 安妮
如何使用 lodash 按 name
键按字母顺序对数组进行排序?
_.sortBy(myObjects, 'name');
名称是这里的排序键
你不需要 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/
您可以使用适当的回调。
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);
不确定 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>')
})
我的数组示例 =
[{
name: leon,
id: 1
}, {
name: laura
id: 20003
}, {
name: anne
id: 45
}]
目前在 UI 中,数组将如下所示:
- 莱昂
- 劳拉
- 安妮
如何使用 lodash 按 name
键按字母顺序对数组进行排序?
_.sortBy(myObjects, 'name');
名称是这里的排序键
你不需要 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/
您可以使用适当的回调。
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);
不确定 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>')
})