在 React 中尝试排序和切片时如何保留整个 geojson?

How do I retain an entire geojson when attempting to sort and slice in React?

我正在尝试根据 属性 对 geojson 内的要素集合进行排序,然后根据该 geojson 对前 5 个要素进行切片。在一些人的帮助下,我已经设置了基本的排序和切片,但我注意到当我 return 排序和切片我的 geojson 的最终结果时,最终结果不是 geojson 而只是子集来自 geojson 中的特定数组。

我将如何更改我的代码以保留原始的 geojson 体系结构,但只保留前 5 个排序的功能?目的是映射较小的排序 geojson 结果。我这里有一个编码示例:

https://codesandbox.io/s/slicing-geojson-qg1hb?file=/src/App.js

在控制台中打印“原始 geojson”和“最终结果”。

这是我在过滤器之前和之后得到的结果:

过滤前:

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.log("Final Result:", {
  ...this.state.geojson,
  features: rearrangedFeatures,
});