У меня есть эта функция для сортировки массива объектов 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']
.
Знаете ли вы, как я могу решить эту проблему и заставить мою функцию работать со свойствами вложенных объектов?
Заранее спасибо