1. ホーム
  2. javascript

[解決済み] TypeScript foreach return [重複]の場合

2022-03-05 14:53:18

質問

foreachから戻るとforeachループを含む関数から戻れないようですが、これはC#の開発者の期待かもしれませんね。

ただ、もっときれいなやり方があるのではないかと思っています。

example() {
    var forEachReturned;

    this.items.forEach(item => {
        if (true) {
            forEachReturned = true;
            return;
        }
    });

    if (forEachReturned) {
        return;
    }

    // Do stuff in case forEach has not returned
}

解決方法は?

よりクリーンな方法としては .forEach . TypeScriptや最新のJavaScriptを使用している場合は、ほとんど必要ありません。

example() {
    for (let item of this.items) {
        if (item === 3) {
            return;
        }
    }      

    // Do stuff in case forEach has not returned
}

ループ内のコードに副作用がなく、各項目の条件をチェックするだけであれば、関数的なアプローチとして .some :

example() {
    if (this.items.some(item => item === 3)) {
        return;
    }

    // Do stuff in case we have not returned
}