javascript - array.find 返回多个结果
问题描述
我正在尝试将单个结果与一组项目(具体来说是 Api)进行比较。它不是.find()
返回与 匹配的第一个Details.title
结果,而是返回所有结果。我正在使用 EJS:
<%
Movies.find(element => {
if(Details.title === element.text){
console.log(element)
}
})
%>
Movies
有项目数组(api)。我循环Movies
试图获得与 匹配的单个结果Details.title
,但它给了我所有匹配的结果。
我能做些什么来防止这种情况发生?
解决方案
您并没有真正find
按照应有的方式使用。
您使用它的方式与您使用的方式没有什么不同forEach
:您决定if
将在回调中输出什么,并且不指示任何停止迭代的内容:因此您将获得所有匹配项的输出。
相反,当你有匹配时,你应该在回调中返回一个真实的值,而不是在那里输出任何东西。输出应基于find
返回的内容:
console.log(Movies.find(element => Details.title === element.text));
特别注意 : 的位置,console.log
它将find
返回的内容作为参数。
比较这些可运行片段的差异:
坏的:
let Movies = [
{ text: "Arena", year: 1989 },
{ text: "Arena", year: 2011 },
{ text: "Asylum", year: 1972 },
{ text: "Asylum", year: 2005 },
];
let Details = { title: "Asylum" };
Movies.find(element => {
if (Details.title === element.text) {
console.log(element);
}
});
好的:
let Movies = [
{ text: "Arena", year: 1989 },
{ text: "Arena", year: 2011 },
{ text: "Asylum", year: 1972 },
{ text: "Asylum", year: 2005 },
];
let Details = { title: "Asylum" };
console.log(Movies.find(element => Details.title === element.text));
推荐阅读
- mysql - MySQL:如何创建一个返回过去 30 天和 15 天的行的查询?
- python - Tkinter 回调中的异常,python 中的 TypeError
- javascript - 如何选择孩子具有特定类名的 div 的元素是使用 jQuery 在 DOM 中具有该类名的最后一个 div?
- racket - Racket 中的 Gaphics 数位板输入
- android - SQlite(房间)触发器:两个查询
- python - 连接到 localhost:6379 时出现错误 0。错误
- perl - 在 MacOS Big Sur 上使用 perl WWW:Mechanize
- python - 为什么不能在 django 中选择一个对象
- javascript - 如何将其他参数传递给 React 中的事件处理程序?
- python - cx_Oracle 查询性能