我从服务器获取一些数据,数据响应以这种形式出现
[
{
"_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/