小编kou*_*tst的帖子

在javascript中对对象的对象数组进行排序

我想通过"user"对象中的"name"对下面的数组进行排序

 var myArr = [
 {"id":1,"user":{"name":"allen","id":101}},
 {"id":2,"user":{"name":"martin","id":102}}
]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我有一个方法来排序对象数组,但我不能将它用于对象的数组

这是方法:

function dynamicSort(property) {
    var sortOrder = 1;
    if (property[0] === "-") {
        sortOrder = -1;
        property = property.substr(1);
    }
    return function (a, b) {
            var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
        return result * sortOrder;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以使用这个排序:

myArr.sort(dynamicSort("id"));
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting javascript-objects

5
推荐指数
1
解决办法
132
查看次数

标签 统计

arrays ×1

javascript ×1

javascript-objects ×1

sorting ×1