У меня есть массив объектов JavaScript:Сортировка массива объектов по значению подмассива свойств в JavaScript
var people = [
{
"name": "Edward",
"age": 100,
"wallet": {
"location": "home",
"cash": 500
},
"bank": {
"location": "bank street",
"cash": 22100
}
},
{
"name": "Lisa",
"age": 30,
"wallet": {
"location": "home",
"cash": 20
},
"bank": {
"location": "bank street",
"cash": 12340
}
},
{
"name": "Elisabeth",
"age": 50,
"wallet": {
"location": "home",
"cash": 200
},
"bank": {
"location": "bank street",
"cash": 5000
}
}
];
Как я могу сортировать их по wallet.cash?
Этот следующий пример (от Ege Özcan) работает, если я хотел сортировать эти объекты по имени или возрасту, но мне сложно изменить его для работы с многомерным ключом.
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;
}
}
Это работает:
people.sort(dynamicSort("name"));
Это не:
people.sort(dynamicSort("wallet.cash"));
Спасибо заранее!
Спасибо человек! Это именно то, что я искал. В первой части кода отсутствует свойство -> свойство1 изменяется. – Beeq