私は次の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ループで発生する無駄なルックアップを減らすことに関して、コードをより効率的にする方法があるかどうか知りたいですか?現時点では、「match」変数を使用しており、postcodes配列要素の値がrangeColours配列要素の値よりも小さい場合は、1に設定して、各postcodes配列要素に対してプッシュが繰り返されないようにします。これを行うためのよりエレガントな方法はありますか?
どうもありがとう