【发布时间】:2018-09-09 17:52:43
【问题描述】:
我试图在读取数组时运行一个函数,但不是对每个元素运行该函数,我目前正在使用 forEach,我想让脚本读取整个数组,然后传递一个函数。
我想说的是:
data.forEach(movie => {
// Log each movie's title
//console.log(movie.title);
// Check if the userWord matches
if (movie.title.toUpperCase().includes(userWord.toUpperCase())) {
alert("YES");
} else {
alert("NO").
}
});
假设我的数组是:array = ["Aa", "Ba", "Ca", "Da"];
如果用户输入:a,那么脚本会alert("YES") 4 次,我只想让它在迭代结束时提醒一次。
同样的例子,如果用户输入:B,那么脚本会先alert("NO")一次,然后alert("YES"),然后alert("YES") 2次,我想做最后只是alert("YES")once。
最后,如果用户输入:Ferrari,那么脚本会alert("NO")四次,我只希望它最后是alert("NO")。
我试图在这里说得很清楚,这就是为什么发生了三个“案例”。
最后,我想知道是否有一种方法与forEach 或常见的for 有点相反。读取整个数组后才执行函数的东西。
【问题讨论】:
-
您要检查是否有匹配的电影吗?
-
完全是@ibrahimmahrir,我已经可以做到,但我在为用户打印答案时遇到问题。
-
你真的需要循环整个数组吗?如果存在第一个匹配的元素,你就不能停下来吗?
-
@ibrahimmahrir 实际上我想显示是否有匹配项以及找到了哪些匹配项。但我认为通过人们在下面回答的
some()结构,我可以实现它。
标签: javascript arrays foreach