JavaScript中如何按字符串属性值对对象数组进行排序?这里有一个JavaScript对象数组:
var objects = [
{name: "abc", age: 78},
{name: "ptd", age: 12},
{name: "hts", age: 10},
{name: "sht", age: 13}
];
能不能根据objects的name属性对该JS数组进行排序?平时用的数组排序都是数值类型或者字符串类型,对象类型的数组排序可行吗?是否需要向对象添加toString()方法?
很简单,你只需要在比较数组的时候传入一个比较函数就行了,例如:
// 数组比较函数
function compare(a, b){
if(a.name > b.name)
return 1;
else if(a.name < b.name)
return -1;
else
return 0;
}
// 调用数组排序函数
objects.sort(compare);
console.log(objects);
或者使用更简单的方式:箭头函数和三目元算符:
objects.sort((a,b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0));
获取更多内容JavaScript开发和实战教程:http://www.srcmini.com/