У меня есть этот код JavaScript, написанный в функциональном стиле:
someArray
.filter((element) => element)
.map((element) => element.property)
.map((property) => doSomethingWithIt)
Теперь наивная реализация будет циклически повторять массив три раза - один раз для каждого filter
и map
- но оптимизатор долженбыть в состоянии оптимизировать его до одного цикла, выполняющего несколько операций, предполагая, что все функции чистые.
Делают ли (большинство?) механизмы JavaScript это оптимизирующим;или это нужно было бы оптимизировать вручную?
РЕДАКТИРОВАТЬ: я подумал, что оптимизированным было просто сократить его до одного цикла:
someArray.reduce((acc, element) => {
if(!element) {
return acc
}
return acc.push(doSomethingWithIt(element.property))
}, [ ])