我有这个函数可以根据属性对 JavaScript 对象数组进行排序:
// arr is the array of objects, prop is the property to sort by
var sort = function (prop, arr) {
arr.sort(function (a, b) {
if (a[prop] < b[prop]) {
return -1;
} else if (a[prop] > b[prop]) {
return 1;
} else {
return 0;
}
});
};
它适用于这样的数组:
sort('property', [
{property:'1'},
{property:'3'},
{property:'2'},
{property:'4'},
]);
但我也希望能够按嵌套属性进行排序,例如:
sort('nestedobj.property', [
{nestedobj:{property:'1'}},
{nestedobj:{property:'3'}},
{nestedobj:{property:'2'}},
{nestedobj:{property:'4'}}
]);
然而,这不起作用,因为不可能做类似的事情object['nestedobj.property']
,它应该是object['nestedobj']['property']
。
你知道我如何解决这个问题并使我的函数与嵌套对象的属性一起工作吗?
提前致谢