У меня есть следующий код 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]
Я хотел бы знать, есть ли способ сделать код более эффективным, особенно в отношении сокращения расточительных поисковых запросов, которые происходят во втором цикле? В данный момент я использую переменную «match» и устанавливаю ее в 1, если значение элемента массива postcodes меньше значения элемента массива rangeColours, чтобы гарантировать, что push не повторяется для каждого элемента массива почтовых индексов, является там более элегантный способ сделать это?
Большое спасибо
Разве что 'rangeColours' продолжает ... увеличиваться на 10? Если это так, вы должны полностью устранить внутренний цикл. –
@cliffsofinsanity Нет, он может содержать любое количество значений, спасибо. –