J'essaie donc d'accéder à une valeur spécifique dans un objet JSON externe, qui est cette structure spécifique :

{
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
   ]
  ]
 },
{},
{},
{},
{},
{},
{}
]
}

Je peux aller jusqu'à afficher le premier enfant de rowSet, ce qui me donne le tableau à l'intérieur. À partir de là, je ne sais pas comment renvoyer la 27e valeur (2199) dans ce tableau.

Contenu complet de mon fichier js ci-dessous :

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"))

Existe-t-il un moyen simple d'accéder à une valeur dans le tableau imbriqué ? J'ai cherché sur le reste du site mais je n'ai pas trouvé de réponse à ce problème spécifique.

Toute aide serait grandement appréciée.

0
gyroscopeboy 7 mars 2019 à 05:32

2 réponses

Meilleure réponse

Vous pouvez spécifier l'index du tableau. Dans ce cas, le 27e du tableau est l'indice 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])
0
holydragon 7 mars 2019 à 03:07

En Javascript, lorsque vous obtenez le premier élément d'un tableau de tableaux avec la notation [0], il renvoie un tableau, vous utilisez donc à nouveau le [] avec l'index souhaité.

result.resultSets[0].rowSet[0][26]
0
DCTID 7 mars 2019 à 03:10