В чем разница между циклами по массиву или использованием array.every() для присвоения обратного вызова каждому элементу массива?В чем разница между циклами по массиву и использованием array.every()
ответ
Функция array.every() использует функцию обратного вызова теста для каждого элемента массива, но останавливается после того, как функция проверки возвращает false. Если вы пройдете через массив, он будет проходить через любой элемент независимо. Другими словами, функция array.every() более правильно используется для проверки того, соответствует ли каждый элемент массива определенным критериям. См. the documentation для array.every() для получения более подробной информации.
Это, в основном, функция удобства, которая абстрагирует общие применения циклов for или while на массивах. Чтобы сделать его немного быстрее для кодирования и в зависимости от ваших предпочтений, немного яснее читать.
Вы получите немного большие накладные расходы, используя array.every, так как это вызов функции для каждого элемента, но это не проблема в 99.99 ...% времени, особенно на флеш-платформе.
Предположим, вы хотите проверить, имеет ли каждый элемент вашего массива тип IFoo
, и в зависимости от того, что выполняет определенную операцию.
Существует не менее 3 способов сделать это.
1. Итерация
var allFoo:Boolean = true;
for (var i:int = 0; i < array.length; i++) {
if (!(array[i] is IFoo)) {
allFoo = false;
break;
}
}
if (allFoo) {
// perform operation
} else {
// do something else
}
2. Перечисление
var allFoo:Boolean = true;
for each (var e:* in array) {
if (!(e is IFoo)) {
allFoo = false;
break;
}
}
if (allFoo) {
// perform operation
} else {
// do something else
}
3. Array.every()
function isElementFoo(item:*, index:int, array:Array):Boolean
{
return (item is IFoo);
}
if (array.every(isElementFoo)) {
// perform operation
} else {
// do something else
}
Я ожидат второй - самый быстрый, тогда как третий - самый изящный из-за отсутствия каких-либо временных переменных. В конечном счете, тот, который вы выберете, зависит от характера вашей программы, а также от вашего личного стиля и философии.
- 1. В чем разница между бесконечными циклами и циклами?
- 2. В чем разница между двумя циклами?
- 3. В чем разница между этими двумя циклами?
- 4. В чем разница между циклами while и while в рубине?
- 5. Ruby: В чем разница между циклами for и каждым циклом?
- 6. В чем разница между вложенными циклами и рекурсивными функциями?
- 7. В чем разница между циклами с выбором и только выбором?
- 8. Разница между циклами
- 9. В чем разница между двумя вложенными циклами в javascript?
- 10. В чем разница между этими двумя циклами в C?
- 11. В чем разница между использованием и внешним?
- 12. В чем разница между «'» и «»
- 13. Итерация по массиву с двумя неявными циклами
- 14. Какая разница между циклами и для каждого цикла в php
- 15. Разница сложности между двойными вложенными циклами? (Java)
- 16. В чем разница между «и»?
- 17. В чем разница между `{}` и `[]`?
- 18. В чем разница между == и ===?
- 19. В чем разница между «+» и «\ +»?
- 20. В чем разница между + = и = +?
- 21. В чем разница между/* ... */и/** ... */
- 22. В чем разница между: и +:
- 23. В чем разница между $ {} и # {}
- 24. В чем разница между $ _. и $ _
- 25. В чем разница между = и: =
- 26. В чем разница между && и &?
- 27. В чем разница между $ {} и # {}?
- 28. В чем разница между + и%?
- 29. В чем разница между + = и = +
- 30. В чем разница между # {} $ {} и% {}?