Как сохранить весь геоджсон при попытке сортировки и нарезки в React?

Я пытаюсь отсортировать набор функций внутри 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, не так ли?

Alan Omar 25.12.2020 22:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
1
119
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не уверен, что это вопрос. Если я правильно вас понял, вы знаете, что такое исходный geoJSON, но замените массив функций вашим отфильтрованным.

Вы можете просто создать копию объекта с помощью оператора распространения и переопределить массив функций своим новым массивом.

console.info("Final Result:", {
  ...this.state.geojson,
  features: rearrangedFeatures,
});

Другие вопросы по теме