每个迭代器块内函数的返回语句



如果我在每个块内的条件内编写一个return语句,那么它会退出函数中的every和return吗?或者它只是像arrry.map数组中的return一样。

export default class App extends Component {
state = {
list: [1, 2, 3, 4, 5]
};
static getFirstNumberWhichis5(list) {
list.every((val) => {
if (val === 5) {
return 5;
}
});
return 7;
}
componentDidMount() {
console.log(App.getFirstNumberWhichis5(this.state.list));
}
render() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
}

我创建了一个代码示例,发现它永远不会从函数中返回,但返回的内容是什么。

上述实施是否有任何例外?

.every将在回调返回falsey值时立即终止,或者在您的情况下,如果根本没有调用return,则在val === 5测试失败时会终止。

由于您随后没有测试调用.every的(布尔(结果,因此getFirstNumberWhichis5函数将始终返回7。

最新更新