Я пытаюсь отсортировать набор функций внутри geojson на основе свойства, а затем нарезать первые 5 функций на основе этого geojson. С помощью некоторых людей здесь я настроил базовую сортировку и срез, но я заметил, что когда я возвращаю окончательный результат сортировки и нарезки моего geojson, конечный результат не является geojson, а просто подмножество из определенного массива внутри геоджсона.
Как бы я изменил свой код, чтобы сохранить исходную архитектуру geojson, но только с этими 5 отсортированными функциями? Цель состоит в том, чтобы отобразить меньший отсортированный результат geojson. У меня есть закодированный пример здесь:
https://codesandbox.io/s/slicing-geojson-qg1hb?file=/src/App.js
С печатью «Original geojson» и «final result» в консоли.
Вот что я получаю до и после фильтра:
Перед фильтром:
original geojson:
{type: "FeatureCollection", features: Array(22), crs: Object}
После фильтра:
Final Result:
(5) [Object, Object, Object, Object, Object]
0: Object
type: "Feature"
geometry: Object
properties: Object
1: Object
2: Object
3: Object
4: Object
Я хотел бы, чтобы окончательный результат выглядел так же, как оригинал, за исключением сортировки в порядке убывания и сохранения только первых 5 функций.
Не уверен, что это вопрос. Если я правильно вас понял, вы знаете, что такое исходный geoJSON, но замените массив функций вашим отфильтрованным.
Вы можете просто создать копию объекта с помощью оператора распространения и переопределить массив функций своим новым массивом.
console.info("Final Result:", {
...this.state.geojson,
features: rearrangedFeatures,
});
Судя по логам, вы получаете geojson, не так ли?