Есть подобный массив объектов:
[
{ val: { id: 10 } },
{ val: { id: 78 } },
{ val: { id: 254 } },
{ val: { id: 0 } },
{ val: { id: 401 } },
{ val: { id: 4 } },
{ val: { id: 100 } },
{ val: { id: -10 } },
{ val: { id: 10 } },
],
Необходимо отсортировать его содержимое, опираясь на id.
Проблем не возникает если прописывать путь до id ручками.
const qSort = (list) => {
if (list.length < 2) return list;
const middleIndex = Math.floor(list.length / 2);
const pivot = list.splice(middleIndex, 1)[0];
const pivotValue = pivot.val.id;
const smaller = list.filter(item => item.val.id <= pivotValue);
const bigger = list.filter(item => item.val.id > pivotValue);
return [
...qSort(smaller),
pivot,
...qSort(bigger),
];
};
Но как быть, если писать универсальную функцию с указанием пути в параметрах?