使用JavaScript遍历JSON以在键内的数组中查找特定值

时间:2019-03-07 02:32:58

标签: javascript json

因此,我正在尝试访问外部JSON对象(此特定结构)中的特定值:

{
resource: "playerdashboardbygeneralsplits",
parameters: {},
 resultSets: [
 {
  name: "OverallPlayerDashboard",
  headers: [],
  rowSet: [
   [
   "Overall",
   "2018-19",
   60,
   37,
   23,
   0.617,
   2247.0583333333334,
   651,
   1483,
   0.439,
   294,
   809,
   0.363,
   603,
   687,
   0.878,
   55,
   334,
   389,
   451,
   314,
   130,
   45,
   91,
   196,
   452,
   2199,
   119,
   3553.3,
   23,
   6,
   1,
   1
   ]
  ]
 },
{},
{},
{},
{},
{},
{}
]
}

我可以一直显示rowSet的第一个孩子,这给了我数组。从这里开始,我不确定如何返回此数组中的第27个(2199)值。

下面我的js文件的全部内容:

var express = require('express')
var fetch = require('isomorphic-fetch')
var app = express()

async function nbaFetch(){
    let result = await fetch('https://stats.nba.com/stats/playerdashboardbygeneralsplits?DateFrom=&DateTo=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Base&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=Totals&Period=0&PlayerID=201935&PlusMinus=N&Rank=N&Season=2018-19&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&Split=general&VsConference=&VsDivision=', {
        mode: 'cors',
        method: "GET", // *GET, POST, PUT, DELETE, etc.
        headers: {
            
        "accept-encoding": "Accepflate, sdch",
        "accept-language": "he-IL,he;q=0.8,en-US;q=0.6,en;q=0.4",
        "cache-control": "max-age=0",
        connection: "keep-alive",
        host: "stats.nba.com",
        referer: "http://stats.nba.com/",
        "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
        },
    })

    let nbaFileStruct = await result.json()

    
    return nbaFileStruct
}
app.use('/', async function (req, res, next) {
    let result = await nbaFetch().catch(error => console.log(error))
    res.send(JSON.stringify(result.resultSets[0].rowSet[0]))
    
})

app.listen(3001, console.log("I'm a server and I am listening on port 3001"))

是否有一种简单的方法来访问嵌套数组中的值? 我搜索了网站的其余部分,但找不到针对此特定问题的答案。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以指定数组的索引。在这种情况下,数组的第27位是索引26。

const result = {
  resource: "playerdashboardbygeneralsplits",
  parameters: {},
  resultSets: [{
      name: "OverallPlayerDashboard",
      headers: [],
      rowSet: [
        [
          "Overall",
          "2018-19",
          60,
          37,
          23,
          0.617,
          2247.0583333333334,
          651,
          1483,
          0.439,
          294,
          809,
          0.363,
          603,
          687,
          0.878,
          55,
          334,
          389,
          451,
          314,
          130,
          45,
          91,
          196,
          452,
          2199,
          119,
          3553.3,
          23,
          6,
          1,
          1
        ]
      ]
    },
    {},
    {},
    {},
    {},
    {},
    {}
  ]
}
console.log(result.resultSets[0].rowSet[0][26])

答案 1 :(得分:0)

在Javascript中,当您获得带有[0]表示法的数组的第一个元素时,它将返回一个数组,因此您只需将[]与所需的索引一起使用。

result.resultSets[0].rowSet[0][26]