Javascript 寻找演员
我正在制作一个函数来查找我搜索的演员制作的所有电影,这些电影在js文件中,如下所示:Javascript 寻找演员,javascript,for-loop,innerhtml,Javascript,For Loop,Innerhtml,我正在制作一个函数来查找我搜索的演员制作的所有电影,这些电影在js文件中,如下所示: var filmlist=[ {“标题”:“杀手之吻”,“演员”:“弗兰克·西尔维拉、杰米·史密斯、艾琳·凯恩、杰瑞·贾勒特”} ]; var a=document.getElementById(“胶片”); 函数findActors(){ var x=document.getElementById(“actor”).value; var y=document.getElementById(“actorfil
var filmlist=[
{“标题”:“杀手之吻”,“演员”:“弗兰克·西尔维拉、杰米·史密斯、艾琳·凯恩、杰瑞·贾勒特”}
];
var a=document.getElementById(“胶片”);
函数findActors(){
var x=document.getElementById(“actor”).value;
var y=document.getElementById(“actorfilm”);
a、 innerHTML=“与此演员合作的电影:”
对于(var i=0;i您当前正在用最后一个电影标题覆盖y.innerHTML
。要附加到innerHTML,请使用:
y.innerHTML+=(电影列表[i].Title+“
”)
您的indexOf有一个问题,在另一个答案中提到,可以通过
if(filmlist[i].Actors.indexOf(x)){
最后,您的HTML错误地引用了js函数,应该是:
ActorButton
您当前正在用最后一个电影标题覆盖y.innerHTML
。要附加到innerHTML,请使用:
y.innerHTML+=(电影列表[i].Title+“
”)
您的indexOf有一个问题,在另一个答案中提到,可以通过
if(filmlist[i].Actors.indexOf(x)){
最后,您的HTML错误地引用了js函数,应该是:
ActorButton
您就快到了,只是您的if
条件需要反转
if (filmlist[i].Actors.indexOf(x) )
您正在检查输入值内的参与者超集,而不是反过来检查
你可以通过这样做使它更精确
var filteredFilms = filmlist.filter( s => s.Actors.indexOf(x) != -1 );
var output = filteredFilms.map( s => s.Title ).join( "<br/>" );
var filteredFilms=filmlist.filter(s=>s.Actors.indexOf(x)!=-1);
var output=filteredFilms.map(s=>s.Title.join(“
”);
演示
var filmlist=[{
“标题”:“杀手之吻”,
“演员”:“弗兰克·西尔维拉、杰米·史密斯、艾琳·凯恩、杰瑞·贾勒特”
}];
var a=document.getElementById(“胶片”);
函数findActors(){
var x=document.getElementById(“actor”).value;
var y=document.getElementById(“actorfilm”);
a、 innerHTML=“与此演员合作的电影:”
var filteredFilms=filmlist.filter(s=>s.Actors.indexOf(x)!=-1);
y、 innerHTML=filteredFilms.map(s=>s.Title).join(“
”);
}
弗兰克·斯尔维拉
阿克特布顿
您就快到了,只是您的if
状况需要逆转
if (filmlist[i].Actors.indexOf(x) )
您正在检查输入值内的参与者超集,而不是反过来检查
你可以通过这样做使它更精确
var filteredFilms = filmlist.filter( s => s.Actors.indexOf(x) != -1 );
var output = filteredFilms.map( s => s.Title ).join( "<br/>" );
var filteredFilms=filmlist.filter(s=>s.Actors.indexOf(x)!=-1);
var output=filteredFilms.map(s=>s.Title.join(“
”);
演示
var filmlist=[{
“标题”:“杀手之吻”,
“演员”:“弗兰克·西尔维拉、杰米·史密斯、艾琳·凯恩、杰瑞·贾勒特”
}];
var a=document.getElementById(“胶片”);
函数findActors(){
var x=document.getElementById(“actor”).value;
var y=document.getElementById(“actorfilm”);
a、 innerHTML=“与此演员合作的电影:”
var filteredFilms=filmlist.filter(s=>s.Actors.indexOf(x)!=-1);
y、 innerHTML=filteredFilms.map(s=>s.Title).join(“
”);
}
弗兰克·斯尔维拉
阿克特布顿
您在文本区域中输入了什么?您在html中写入了findActor
,在JS中写入了findActor
,请参见使用代码的工作示例。您在文本区域中输入了什么?您在html中写入了findActor
,在JS中写入了findActor
,请参见使用代码的工作示例。Whi你是对的,这不是OP面临的问题。正如@Adriani6所提到的,最初的问题是你的if语句比较字符串的indexOf,而不是数组。现在检查我的答案,或者gurcinder372的回答是的,我更改了这两个答案,仍然没有结果检查你原始帖子上的评论,似乎是输入了findActor()
在HTML中,当JS函数为findActors()时
啊,很抱歉,这是一个打字错误,很好地发现了!虽然你是正确的,但这不是OP面临的问题。正如@Adriani6所提到的,最初的问题是你的if语句比较字符串上的indexOf,而不是数组。现在检查我的答案,或者检查gurcinder372的答案是的。是的,我更改了这两个,仍然没有结果。检查你原来帖子上的评论,似乎是正确的当JS函数为findActors()时,在HTML中输入findActor()
啊,很抱歉,这是一个打字错误,很好地发现了!仍然无法通过反转索引:/@GustavBangNielsen打印出来检查演示。我将for和if循环更改为您的解决方案,并进行了反转索引,仍然没有结果。仍然无法通过反转索引:/@GustavBangNielsen打印出来检查演示。我将for和if循环更改为你的解决方案和索引做了颠倒,还是没有结果。。