当available的值为true时,我必须中断forEach方法。
[
{
"Book": "Book1",
"available": false
},
{
"Book": "Book2",
"available": false
},
{
"Book": "Book3",
"available": true
},
{
"Book": "Book4",
"available": true
}
]
enter image description here
并且在available的值为真后只打印一项。
5条答案
按热度按时间vmdwslir1#
map
和forEach
将在数组中的所有值上运行。有一个隐藏的循环,但是你不能控制循环体。如果你想在循环中的某个位置中断,只需要使用一个for-of循环:
bis0qfac2#
对于Each doen的支撑断点,请使用
for of
xhv8bpkk3#
你不能打破
forEach
。如果你只想打印一个项目。我想
find
方法就是你要找的。如需了解更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
gk7wooem4#
find
will short-circuit在它找到满足条件的第一个示例后执行迭代。您可能希望将该代码放在它自己的函数中,然后从JSX调用它。注意,我在这里将
Book
属性重新标记为title
,因为它在语义上更有意义。axzmvihb5#
我之前遇到过同样的问题。我发现在forEach或map函数中声明break是不可能的。它将遍历整个数组。你可以在for循环中使用break。但是使用一个标志可以做到这一点。
参考:Past Stack Overflow Post
MDN文章:MDN article on ForEach()
但是for循环可以很容易地做到这一点。例如:
这将给你第一个可用的,这是唯一的真。然而,你也可以使用查找函数来得到相同的输出: