Следующий сценарий: функция получает 3 массива определенной длины, каждый из которых должен быть повторен, чтобы найти соответствующий объект.Когда объект найден, цикл for прерывается и следующий не вызывается.Массивы не могут быть объединены в этом случае.В основном так:
for (let i = 0; i < array1.length; i++) {
if (array1[i].id == matchingID) {
returnValue = array1[i];
break;
}
}
if (!returnValue) {
for (let i = 0; i < array2.length; i++) {
if (array2[i].id == matchingID) {
returnValue = array2[i];
break;
}
}
}
if (!returnValue) {
for (let i = 0; i < array3.length; i++) {
if (array3[i].id == matchingID) {
returnValue = array3[i];
break;
}
}
}
return returnValue;
Будет ли использование обещаний более эффективным в этом случае, поскольку таким образом все циклы for могут работать одновременно?Примерно так: каждый вызов функции выполняет один из циклов for (и разрешает найденное значение) из приведенного выше примера:
return new Promise((resolve) => {
this.findMatchingIDInArray1(array1)
.then(() => resolve(returnValue));
this.findMatchingIDInArray2(array2)
.then(() => resolve(returnValue));
this.findMatchingIDInArray3(array3)
.then(() => resolve(returnValue));
})
Какой способ более эффективен?Есть ли лучший способ сделать это?Спасибо за вашу помощь!