2017-11-01 11 views
0

セイとコードのリファクタリング、私は次のようになりますいくつかのコードがあります: -ノードJS:異なるforEachの中にほぼ同様のコード

objects1.forEach(function check(o1) { 
    if (o1.name === object.name) { 
     object.name = object.name + objectType; 
    } 
}); 

objects2.forEach(function ifNameMatch(o2) { 
    if (o2.name === object.name) { 
     object.name = object.name + objectType; 
    } 
}); 

を私は1で、この2のforEachを交換したり、それを書くことができます任意の方法はありますより良い方法?

あなたが与えることができる提案は感謝します。

+0

ES5またはES6で答えをお探しですか? –

答えて

1

最初に私はそれを行う必要があるオブジェクトごとにジェネレータを作成します。繰り返し処理の場合は、objects1またはobjects2のシナリオでコレクションを処理する関数を返します。

let nameMatchGenerator = (object, objectType) => { 
return (collections) => { 
    return collections.forEach(collection) => { 
    collection.forEach(o => { 
     if (o.name === object.name) { 
     object.name = object.name + objectType; 
     } 
    }) 
    } 
} 
let nameMatch = (object, objectType); 
nameMatch([objects1, objects2]) // you can use this function to repeat 
          // the process for as many collections