如何使用 filter() 函数从 API 中过滤这组数据?

呸呸呸

API调用代码:

const settings = {
"async": true,
"crossDomain": true,
"url": "https://v3.football.api-sports.io/fixtures?date=2021-04-07",
"method": "GET",
"headers": {
    "X-RapidAPI-Host": "v3.football.api-sports.io",
    "X-RapidAPI-Key": "MY-API-KEY"
}
};

$.ajax(settings).done(function (response) { console.log(response)});  // Logs API Data, Need to Filter This

API 数据的格式为:

response: Array(305) [ {…}, {…}, {…}, … ]
​​
[0…99]
​​​                                                       //FIRST ELEMENT
0: Object { fixture: {…}, league: {…}, teams: {…}, … }
​​​​
fixture: Object { id: 812523, timezone: "UTC", date: "2022-05-13T00:00:00+00:00", … }
​
goals: Object { home: null, away: null }
​​​​
league: Object { id: 395, name: "Divizia A", country: "Moldova", … }
​​​​
score: Object { halftime: {…}, fulltime: {…}, extratime: {…}, … }
​​​​
teams: Object { home: {…}, away: {…} }
​​​​
<prototype>: Object { … }
​​​                                                     //SECOND ELEMENT
1: Object { fixture: {…}, league: {…}, teams: {…}, … }
​​​​
fixture: Object { id: 830985, referee: "H. Prado", timezone: "UTC", … }
​​​​
goals: Object { home: 4, away: 0 }
​​​​
league: Object { id: 344, name: "Primera División", country: "Bolivia", … }
​​​​
score: Object { halftime: {…}, fulltime: {…}, extratime: {…}, … }
​​​​
teams: Object { home: {…}, away: {…} }
​​​​
<prototype>: Object { … }

示例中仅显示了 0 和 1,但有 305 个元素。

我遇到的问题是我无法在 for 循环中使用 response[element].league.id 过滤那些 305(395 和 344 是上面的两个值),因为它不起作用。

假设我有一组我想要的联赛 ID(即 const arrWant=[395, 43, 308]),我该如何从数据中过滤掉我不想要的那些?我知道我必须使用 filter() 但不确定如何做。如果有人可以编写粗略的代码或功能,那将很有帮助。API 输出图片

巴尔马尔

使用该includes()方法测试响应中的联赛 ID 是否在arrWant数组中。

使用dataType: 'json'这样$.ajax()将解析响应中的 JSON。

const settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://v3.football.api-sports.io/fixtures?date=2021-04-07",
  "method": "GET",
  dataType: 'json',
  "headers": {
    "X-RapidAPI-Host": "v3.football.api-sports.io",
    "X-RapidAPI-Key": "MY-API-KEY"
  }
};

const arrWant=[395, 43, 308]

$.ajax(settings).done(function(data) {
  console.log(data.response.filter(el => arrWant.includes(el.league.id)))

});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果filter函数是异步的,如何使用lodash过滤列表

如何在excel中使用FILTER函数提取数据?

.filter不是函数。尝试通过API数据搜索名称

如何在FILTER函数的准则中添加*?

如何使用聚合函数在ssrs 2008中过滤数据集

如何优化.filter函数,以便更快地完成过滤?

如何在FILTER函数中使用通配符

如何使用.filter在Django中过滤列?

如何使用函数过滤数据帧?

如何在旧的api函数中调用新的api函数?

如何在Ag-grid中为外部过滤器调用(filter-)valueGetter函数?

如何使用Google Places API中的函数添加Google API密钥和回调函数

如何在 React 中过滤 api 数据

使用AngularJS的FILTER函数计算过滤器中重复元素的总和

如何使用 Postman 在 Web API 中调用函数?

如何使用 Twilio 函数中的参数调用外部 API

使用Shiny中的selectInput从API过滤数据

如何使用$ filter('filter')过滤AngularJS中的多个字段

如何使用数据集API在Tensorflow中的损失函数中将Iterator的输出映射到占位符

使用VBA,如何从HTTP GET函数将API数据集加载到Excel中?

我们如何在map函数中具体使用来自api的数据?

如何使用Array.filter()函数从数组中删除单个元素?

如何使用Lo-dash遍历_.filter的回调函数中的数组

如何使用quosure将filter语句作为dplyr中的函数参数传递

如何编写dplyr :: filter函数

使用请求 API 数据的函数时出错

使用 Firebase 函数访问 API 数据

使用filter()在MATLAB中过滤

使用 Google Spreadsheet API 获取 Filter 视图过滤的值