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);
你能告诉我们你试过什么吗;在上面的代码中。向下滚动你会看到抱歉我错过了