繁体   English   中英

javascript(es6)在forEach中返回过滤器的值

[英]javascript (es6) return value of filter in forEach

我有如下功能。

如果过滤器的值是一个多于 4 的数组,我只想返回键。

例如const result = gethitedShips(); // result be 1 or 2 const result = gethitedShips(); // result be 1 or 2但我得到undefined

我完全困惑在哪里返回什么

    getHitShips = () => {
    const { players } = this.props;
    return Object.keys(players).forEach(key => {
      const hitShips = players[key].ships.filter(ship => ship.health <= 0);
      if (hitShips.length >= 5) return key;
      return null;
    });
  };

您可以通过检查长度来过滤键

const getHitedShips = () => {
    const { players } = this.props;
    return Object
        .keys(players)
        .filter(key => players[key].ships.filter(ship => ship.health <= 0).length >= 5);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM