我有一个对象数组,我想知道你是否可以通过对象中的属性对数组进行排序?以下是我的意思的样本:
for (var i = 0; i < response.data.length; i++) {
person[i] = {
"name":response.data[i].name,
"phone":response.data[i].phone
};
person[i].name.sort();
}
我正在尝试按对象名称对数组进行排序。
答案 0 :(得分:8)
person.sort(function(a, b) {
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
});
sort
将比较器函数作为可选参数。
答案 1 :(得分:0)
不确定。数组对象有一个sort函数,允许您传入一个函数来确定如何比较对象。
//Passes in A and B, which are the objects in your array.
function sortName(a, b)
{
return a.name <= b.name ? -1 : 1
//return integer
//negative number a is less than b
//positive number b is less than a
//zero a and b are equal
//(My function doesn't ever return zero)
}
person.sort(sortName);