【发布时间】:2021-08-15 00:27:54
【问题描述】:
我有这个从 API 检索到的对象数组。它每天都在不断更新。该数组由每天的时间序列案例组成。我想使用这个数组返回上周每个日期的案例。我已经获取了国家名称并过滤了数组,所以它只显示了用户所在国家的数组。我在想我可以映射数组的日期以找到最后 7 个索引。有没有办法做到这一点?
useEffect(() => {
axios
.get("https://api.covid19india.org/v4/min/timeseries.min.json")
.then((response) => {
setEarliest2(response.data);
const stateArray = response.data.filter(
(item) => item.country === mappedLocation.stateShort
);
}
{
"AN": {
"dates": {
"2020-03-26": {
"delta": {
"confirmed": 1
},
"delta7": {
"confirmed": 1
},
"total": {
"confirmed": 1
}
},
"2020-03-27": {
"delta": {
"confirmed": 5
},
"delta7": {
"confirmed": 6
},
"total": {
"confirmed": 6
}
},
"2020-03-28": {
"delta": {
"confirmed": 3
},
"delta7": {
"confirmed": 9
},
"total": {
"confirmed": 9
}
},
"2020-03-29": {
"delta7": {
"confirmed": 9
},
"total": {
"confirmed": 9
}
},
"2020-03-30": {
"delta": {
"confirmed": 1
},
"delta7": {
"confirmed": 10
},
"total": {
"confirmed": 10
}
},
...
}
const DataSet = (props) => {
return [
{
x: new Date(
parseInt(moment().format("YYYY")),
parseInt(moment().format("M")),
parseInt(moment().format("DD")) - 7
),
【问题讨论】:
-
没有 JSON 数组这样的东西。
response.data是一个对象数组。 -
为什么用
typescript和react-native标记? -
抓取“日期”(
Object.keys()),对它们进行排序,得到第一个/最后一个(取决于排序顺序)七个 -
@Andreas 是的,我的意思是说一个对象数组,但它是一个 JSON。因为我正在使用
react-native和typescript构建它,所以它被标记了?否则,我为什么要标记这些?你能举一个你的答案的例子吗? -
Axios 自动将 JSON 解析为数组和对象。如果它真的还是 JSON,它会是一个字符串,当你写
response.data.filter时你会得到一个错误,因为字符串没有filter方法。
标签: arrays json array.prototype.map