首页 > 解决方案 > 如何从 React Native 的 Elastic Search 重建对象?

问题描述

所以我有一个看起来像这样的对象:

{
  2000 - 2005: { from: 2000, to: 2005, doc_count: 32 }
  2006 - 2010: { from: 2006, to: 2010, doc_count: 77 }
  2011 - 2015: { from: 2011, to: 2015, doc_count: 94 }
  2016 - 2018: { from: 2016, to: 2018, doc_count: 28 }
}

但我希望它看起来更像

[{ label: "2016-2018", from: 2016, to: 2018, doc_count: 28} ] (etc)

这样我就可以映射并显示所需的值

认为将原始对象重构为数组是我应该走的方向。

问题来自使用 ElasticSearch Keyed 响应。这是文档。看看“键控响应”。当Keyed: true我得到的响应是一个对象但Keyed没有被使用时,我得到一个我正在尝试创建的数组(在文档中向上滚动以查看该示例)

那么我应该重建对象还是有更好的方法来解决这个问题?

谢谢!

标签: arraysreactjsobjectelasticsearch

解决方案


看起来您只需将第一个对象中的键设置为您想要的数组中的标签键。使用 Object.keys 获取键,然后您可以使用 map 将其与原始数据重新组合

const info = Object.keys(yourData).map((label, index) => {...yourData[index], label};

注意:可能尚未标准化

或者

const info = Object.keys(yourData).map((label, index) => {
   let datapoint = yourData[index];
   yourData.label = label;
   return yourData;
})

通过elasticsearch可能有更好的方法来做到这一点,但除非你有很多数据,否则这非常简单快捷


推荐阅读