1. ホーム
  2. javascript

[解決済み] cursor.forEach()内の "continue"。

2022-03-15 09:02:44

質問

meteor.jsとMongoDBを使ってアプリを作っているのですが、cursor.forEach()について質問させてください。 私は、各forEach反復の最初にいくつかの条件をチェックし、それに対して操作を行う必要がない場合は要素をスキップして、時間を節約したいのです。

以下は私のコードです。

// Fetch all objects in SomeElements collection
var elementsCollection = SomeElements.find();
elementsCollection.forEach(function(element){
  if (element.shouldBeProcessed == false){
    // Here I would like to continue to the next element if this one 
    // doesn't have to be processed
  }else{
    // This part should be avoided if not neccessary
    doSomeLengthyOperation();
  }
});

cursor.find().fetch()を使ってカーソルを配列に変換し、通常のforループを使って要素を繰り返し、continueとbreakを普通に使うことができるのは知っていますが、もしforEach()で使うのに似たものがあるのなら興味があります。

どのように解決するのですか?

の各反復は forEach() は、指定された関数を呼び出します。任意のイテレーションでそれ以上の処理を止める (そして次のアイテムに進む) には return を適切な位置で関数から削除します。

elementsCollection.forEach(function(element){
  if (!element.shouldBeProcessed)
    return; // stop processing this iteration

  // This part will be avoided if not neccessary
  doSomeLengthyOperation();
});