我的目标是抓取platforms
内部的值并将其作为Windows,osx,Linux
进行检索,最终删除数组中没有platforms[]
时返回undefined
的任何空部分
返回的JSON数组示例
{"games":[{"id":1,"bundle_game":{"position":1},"platforms": ["windows","osx","linux"],"title":"xxx","user":{"url":"https:xxx.io","name":"xxxx","id":2},"url":"https:xxx and","cover":"https:\/\/xxx.png","cover_color":"#16211b","classification":"game","short_text":"ZZZZ","price":"$xx"},{"id":93664,"bundle_game":{"position":2},"title":"Z","user":{"url":"https:\/\/ZZZ","name":"ZZZ","id":1},"url":"https:\/\/XXX","cover":"https:\/\/XXX.png","cover_color":"#000","classification":"game","short_text":"xxxx","price":"$XX"},
**我的代码**
const request = require('request');
const _ = require("lodash");
const { json } = require('body-parser');
let url = "games.json";
let options = {json: true};
const platform = [];
request(url, options, (error, res, body) => {
if (error) {
return console.log(error)
};
if (!error && res.statusCode == 200) {
for (var i = 0; i <body.games.length; i++) {
var platformList = body.games[i].platforms;
for(var j = 0; j < platformList .length; j++)
{
var listFilter= platformList [j];
for(var e = 0; e < listFilter.length; e++)
{
var listFilter2= listFilter[e];
console.log(listFilter2);
}
}
}
});
您可以使用.map()
&轻松地获取平台
数组数据; .filter()
类似:
null
const games = [{
"id": 1,
"platforms": ["windows", "osx", "linux"],
"title": "xxx",
}, {
"id": 93664,
"title": "Z",
}, {
"id": 93665,
"title": "Z2",
"platforms": ["windows"],
}]
const listFilter = games.map(x => x.platforms).filter(Boolean)
console.log(listFilter)
.as-console-wrapper { max-height: 100% !important; top: 0; }