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