Я просто не могу понять это.
var arr = [
[ {'value': 3, 'id': 'ab'}, {'value': 1, 'id': 'ab'}, {'value': 5, 'id': 'ab'} ],
[ {'value': 6, 'id': 'bc'}, {'value': 3, 'id': 'bc'}, {'value': 4, 'id': 'bc'} ],
[ {'value': 1, 'id': 'cd'}, {'value': 3, 'id': 'cd'}, {'value': 2, 'id': 'de'} ],
]
У меня есть массив обр. arr [0], arr [1] и arr [2] содержат одинаковое количество объектов.
Я бы хотел отсортировать весь массив по arr [1]. Например,
var result = [
[ {'value': 1, 'id': 'ab'}, {'value': 5, 'id': 'ab'}, {'value': 3, 'id': 'ab'}, ],
[ {'value': 3, 'id': 'bc'}, {'value': 4, 'id': 'bc'}, {'value': 6, 'id': 'bc'}, ],
[ {'value': 3, 'id': 'cd'}, {'value': 2, 'id': 'de'}, {'value': 1, 'id': 'cd'}, ],
]
-> arr [1] теперь сортируется по значению (3,4,6). Соответствующие значения в arr [0] и arr [2] также были «отсортированы». Если arr [1] [1] перемещается в начало из-за правильной сортировки arr [1], то arr [0] [1] и arr [2] [1].
До сортировки
3 1 5
6 3 4
1 3 2
После сортировки
1 5 3 <- 1 is 'linked' to 3 in 2nd row, 5 is 'linked' to 4 in 2nd row, etc.
3 4 6 <- sorted
3 2 1 <- 3 is 'linked' to 3 in 2nd row, 2 is 'linked' to 4 in 2nd row, etc.
Например, я могу отсортировать arr [1], используя
arr[1].sort(function(a,b) {
return a.value-b.value
});
, но, конечно, это не меняет arr [0] и обр [2], как я хотел бы. Очевидно, то же самое верно для
arr.forEach(item =>
item.sort(function(a,b) {
return a.value-b.value
}));
, который сортирует только каждый массив отдельно.
Возможно, например, чтобы получить индексы a и b, чтобы я мог перемещать элементы в arr [0 ] и arr [1] сам?
Любая помощь очень ценится!