एक फ़ंक्शन लिखें जो सीज़न नंबर और एपिसोड नंबर को इनपुट के रूप में लेता है और उस विशेष एपिसोड के बारे में सभी जानकारी आउटपुट के रूप में देता है

उपयोगकर्ता से सीज़न नंबर और एपिसोड नंबर के रूप में इनपुट लेने के बाद, यह उस विशेष एपिसोड के बारे में जानकारी के रूप में आउटपुट नहीं देता है

let BigBang =  { 
    "_embedded": {
        "episodes": [
          {
            "id": 2913,
            "name": "Pilot",
            "season": 1,
            "number": 1,
            "airdate": "2007-09-24",
            "airtime": "20:30",
            "airstamp": "2007-09-25T00:30:00+00:00",
            "runtime": 30,


            "_links": {
              "self": {
                "href": "http:\/\/api.tvmaze.com\/episodes\/2913"
              }
            }
          },
          {
            "id": 2914,
            "name": "The Big Bran Hypothesis",
            "season": 1,
            "number": 2,
            "airdate": "2007-10-01",
            "airtime": "20:30",
            "airstamp": "2007-10-02T00:30:00+00:00",
            "runtime": 30,
            "image": {
              "medium": "http:\/\/static.tvmaze.com\/uploads\/images\/medium_landscape\/4\/12369.jpg",
              "original": "http:\/\/static.tvmaze.com\/uploads\/images\/original_untouched\/4\/12369.jpg"
            },
       }



    let season = prompt('Enter Season number');                               
    let number = prompt('Enter Episode number');                            
    let AllInfo = (season,number) => {                                   
        for(let current in BigBang._embedded.episodes) {                    
            if(BigBang._embedded.episodes[current].season === season) {                                              
                if(BigBang._embedded.episodes[current].number === number) { 
                let Detail = BigBang._embedded.episodes[current];
                    alert(Detail);
                }
            }
        }                            
    AllInfo(season,number);                         
    }
0
Kunal 28 मार्च 2018, 09:16

3 जवाब

सबसे बढ़िया उत्तर

इसके बजाय .find का उपयोग करने का प्रयास करें, इससे कोड बहुत साफ हो जाएगा:

    let BigBang = {
      "_embedded": {
        "episodes": [{
            "id": 2913,
            "name": "Pilot",
            "season": 1,
            "number": 1,
            "airdate": "2007-09-24",
            "airtime": "20:30",
            "airstamp": "2007-09-25T00:30:00+00:00",
            "runtime": 30,
            "_links": {
              "self": {
                "href": "http:\/\/api.tvmaze.com\/episodes\/2913"
              }
            }
          },
          {
            "id": 2914,
            "name": "The Big Bran Hypothesis",
            "season": 1,
            "number": 2,
            "airdate": "2007-10-01",
            "airtime": "20:30",
            "airstamp": "2007-10-02T00:30:00+00:00",
            "runtime": 30,
            "image": {
              "medium": "http:\/\/static.tvmaze.com\/uploads\/images\/medium_landscape\/4\/12369.jpg",
              "original": "http:\/\/static.tvmaze.com\/uploads\/images\/original_untouched\/4\/12369.jpg"
            },
          }
        ]
      }
    }
    //const inputSeason = prompt('Enter Season number');
    const inputSeason = 1;
    //const inputNumber = prompt('Enter Episode number');
    const inputNumber = 2;

    const foundEpisode = BigBang._embedded.episodes.find(({ season, number}) => {
      return season === inputSeason && number === inputNumber;
    });
    if (foundEpisode) console.log(foundEpisode);
    else console.log('No matching season/number found!');
1
CertainPerformance 28 मार्च 2018, 06:20

मैंने आपका कोड डीबग किया है और देखा है कि आप AllInfo फ़ंक्शन को AllInfo के भीतर कॉल करते हैं। इसलिए आपके कोड में पुनरावर्ती कॉल होती है। तो AllInfo फ़ंक्शन से AllInfo की कॉलिंग हटा दें, आपकी समस्या का समाधान हो जाएगा। निम्नलिखित कोड का प्रयास करें।

let BigBang =  { 
"_embedded": {
    "episodes": [
      {
        "id": 2913,
        "name": "Pilot",
        "season": 1,
        "number": 1,
        "airdate": "2007-09-24",
        "airtime": "20:30",
        "airstamp": "2007-09-25T00:30:00+00:00",
        "runtime": 30,


        "_links": {
          "self": {
            "href": "http:\/\/api.tvmaze.com\/episodes\/2913"
          }
        }
      },
      {
        "id": 2914,
        "name": "The Big Bran Hypothesis",
        "season": 1,
        "number": 2,
        "airdate": "2007-10-01",
        "airtime": "20:30",
        "airstamp": "2007-10-02T00:30:00+00:00",
        "runtime": 30,
        "image": {
          "medium": "http:\/\/static.tvmaze.com\/uploads\/images\/medium_landscape\/4\/12369.jpg",
          "original": "http:\/\/static.tvmaze.com\/uploads\/images\/original_untouched\/4\/12369.jpg"
        },
   }]}};



let season = 1;                               
let number = 2;                            
let AllInfo = (season,number) => {                              
    for(let current in BigBang._embedded.episodes) {                    
        if(BigBang._embedded.episodes[current].season === season) {                                              
            if(BigBang._embedded.episodes[current].number === number) { 
            let Detail = BigBang._embedded.episodes[current];
                alert(JSON.stringify(Detail,null,4));
            }
        }
    }                                                     
}
AllInfo(season,number);
0
Chinmoy Samanta 28 मार्च 2018, 06:24

आप अपने सरणी पर खोज() विधि के साथ इतना आसान कर सकते हैं।

let episode = BigBang._embedded.episodes.find((e) => {
    return e.season === season && e.number === number;
});
if (episode) {
    alert(episode.name);
}
0
Benjamin Lüscher 28 मार्च 2018, 06:22