I次のJavaScriptコードを持っている:避ける、ループの最適化、無駄な検索
var postcodes = [['BD1',8],['BD2',20],['BD7',30]];
var rangeColours = [['red',10],['black',20],['blue',30]];
var postcodeColours = [];
for(var i=0; i<postcodes.length; i++) {
var match = 0;
for(var x=0; x<rangeColours.length; x++) {
if(postcodes[i][1] <= rangeColours[x][1] && match == 0){
postcodeColours.push([postcodes[i][0],rangeColours[x][0]]);
match = 1;
}
}
}
コードの出力は次のようになります。
[BD1,red][BD2,black][BD7,blue]
私が好きな(ちなみに罰金です) 2番目のforループで発生する無駄なルックアップを減らすことに関して、コードをより効率的にする方法があるかどうかを知るためには?現時点では、postcodes配列要素の値がrangeColours配列要素の値よりも小さい場合は、「一致」変数を使用して1に設定して、プッシュコードが各ポストコード配列要素に対して繰り返されないようにします。これを行うよりエレガントな方法がありますか?
多くのおかげ
「rangeColours」はどのように続きますか?10ずつ増やしていきますか?そうであれば、内部ループを完全になくすことができます。 –
@cliffsofinsanityいいえ、任意の数の値を含めることができます、ありがとうございます。 –