Я хочу сделать что-то вроде этого:
var data = [
{
sortData: {a: 'a', b: 2}
},
{
sortData: {a: 'a', b: 1}
},
{
sortData: {a: 'b', b: 5}
},
{
sortData: {a: 'a', b: 3}
}
];
data = _.sortBy(data, ["sortData.a", "sortData.b"]);
_.map(data, function(element) {console.log(element.sortData.a + " " + element.sortData.b);});
И пусть это выведет это:
"a 1"
"a 2"
"a 3"
"b 5"
К сожалению, это не работает, и массив остается отсортированным в исходной форме. Это будет работать, если поля не были вложены внутри sortData
. Как я могу использовать lodash/underscore для сортировки массива объектов более чем одним вложенным полем?
Я превратил это в запрос функции lodash: https://github.com/lodash/lodash/issues/581