微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决从每个迭代器块内的函数返回语句

如果我在 every 块内的条件内编写 return 语句 - 那么它会退出 every 并从函数返回,或者它只是像从 arrry.map 数组返回一样。

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>
    );
  }
}

我创建了一个代码示例 - 并发现它永远不会从函数返回 - 但是返回返回到什么 - 在每个(甚至是 forEach 中)。

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

解决方法

.every 将在回调返回 falsey 值后立即终止,或者在您的情况下,如果根本没有调用 return,如果 {{1} } 测试失败。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。