javascript - React Native 将 JSON 对象转换为数组

标签 javascript reactjs react-native

我从服务器获取一些数据,数据响应以这种形式出现

    [
    {
        "_id": "5dcb1495daa062304c60c7b0",
        "weightTracking": 97,
        "weightTrackingDate": "Nov 12"
    },
    {
        "_id": "5dcb14eadaa062304c60c7b1",
        "weightTracking": 96,
        "weightTrackingDate": "Nov 13"
    },
    {
        "_id": "5dcb161ddaa062304c60c7b2",
        "weightTracking": 95,
        "weightTrackingDate": "Nov 14"
    },
    {
        "_id": "5dcb1c6cdaa062304c60c7b3",
        "weightTracking": 94,
        "weightTrackingDate": "Nov 15"
    },
]

我希望能够在我的应用程序中使用这些数据

              data={{
            labels: ['Nov 12', 'Nov 13', 'Nov 14', 'Nov 15'],
            datasets: [
              {
                data: [
                  97,
                  96,
                  95,
                  94,
                ],
              },
            ],
          }}

就像Javascript或react-native中的[weightTracking]、[weightTrackingDate] 我怎样才能做到这一点?可以这样做吗?

最佳答案

// assuming that data fetched from the server is inside the variable called 'response'
const response = [
    {
        "_id": "5dcb1495daa062304c60c7b0",
        "weightTracking": 97,
        "weightTrackingDate": "Nov 12"
    },
    {
        "_id": "5dcb14eadaa062304c60c7b1",
        "weightTracking": 96,
        "weightTrackingDate": "Nov 13"
    },
    {
        "_id": "5dcb161ddaa062304c60c7b2",
        "weightTracking": 95,
        "weightTrackingDate": "Nov 14"
    },
    {
        "_id": "5dcb1c6cdaa062304c60c7b3",
        "weightTracking": 94,
        "weightTrackingDate": "Nov 15"
    },
]

const labels = [];
const datasets = [];

response.forEach(item => {
  labels.push(item.weightTrackingDate)
  datasets.push(item.weightTracking)
})

const data = {
  labels: labels,
  datasets: [{
    data: datasets,
  }]
}

编辑:我也会添加一些评论,而不是直接回答:

正如 @byxor 所说,它与 React Native 完全无关。这是一个简单的 JavaScript 任务。 React Native 使用 JavaScript,但不要将两者混淆。数组、对象、循环等是语言的特性,而不是框架的特性。

您也可以使用 for() 循环来代替 forEach,但这完全取决于您。这主要取决于代码的可读性。

关于javascript - React Native 将 JSON 对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858456/

相关文章:

php - onclick 不调用 javascript 函数

javascript - 如何使用 jquery 根据其部分将菜单项更改为不同的颜色

javascript - d3js : How to select only x number of values from data

javascript - Next.js,使用随机属性而不触发 "did not match on server/client"错误

react-native - 将 expo 项目移动到 react native 后收到警告 "componentWillReceiveProps has been renamed"

javascript - 切换javascript函数

reactjs - 如何使用 react-testing-library 检查 material-ui MenuItem 是否被禁用

javascript - 通过 findIndex 方法比较 'id'

react-native - 为 react-navigation DrawerNavigator 设置滑动区域宽度

node.js - 如何将 React Native 应用程序与 Express 应用程序同步?