javascript对象上的迭代

javascript对象上的迭代,javascript,json,javascript-objects,Javascript,Json,Javascript Objects,编写一个函数,将季号和集号作为输入 并将有关该特定事件的所有信息作为输出 在将用户的输入作为季号和集号后,它不会将输出作为关于特定集的信息 let BigBang = { "_embedded": { "episodes": [ { "id": 2913, "name": "Pilot", "season": 1, "number": 1,

编写一个函数,将季号和集号作为输入 并将有关该特定事件的所有信息作为输出

在将用户的输入作为季号和集号后,它不会将输出作为关于特定集的信息

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);                         
    }
尝试使用.find,它会使代码更干净:

让BigBang={ _嵌入式:{ 剧集:[{ 身份证号码:2913, 姓名:飞行员,, 季节:1, 编号:1, 播出日期:2007-09-24, 播出时间:20:30, 气压图:2007-09-25T00:30:00+00:00, 运行时间:30, _链接:{ 自我:{ href:http:\/\/api.tvmaze.com\/scents\/2913 } } }, { 身份证号码:2914, 名称:大麸皮假说, 季节:1, 编号:2, 播出日期:2007-10-01, 播出时间:20:30, 气压标:2007-10-02T00:30:00+00:00, 运行时间:30, 图片:{ 媒体:http:\/\/static.tvmaze.com\/uploads\/images\/medium\/u landscape\/4\/12369.jpg, 原件:http:\/\/static.tvmaze.com\/uploads\/images\/original\u untouched\/4\/12369.jpg }, } ] } } //const inputSeason=提示“输入季节编号”; 常数输入季节=1; //const inputNumber=提示“输入剧集编号”; 常数inputNumber=2; const foundSpidence=BigBang.\u embedded.spides.find{season,number}=>{ 返回季节===输入季节和编号===输入编号; }; 如果是FoundSpidence console.logFoundSpidence;
else控制台。记录“未找到匹配的季节/编号!” 使用数组上的find方法可以更轻松地完成此任务

let episode = BigBang._embedded.episodes.find((e) => {
    return e.season === season && e.number === number;
});
if (episode) {
    alert(episode.name);
}

我已经调试了你的代码,看到你在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);

你能告诉我们你试过什么吗;在上面的代码中。向下滚动你会看到抱歉我错过了