Я продолжу и не соглашусь с тобой здесь. Я думаю, что это очень сильно зависит от того, думаете ли вы в fp или в циклах. Петли вызывают у меня ненужную когнитивную перегрузку. Часто я думаю, что вы обнаружите, что если это трудно сделать или запутать при изменении на LINQ/lodash, это потому, что есть гораздо более короткий и понятный способ сделать это.
const foos = [‘foo’, ‘bar’, ‘baz’] for (let i = 0; i < foos.length; i++) { const f = foos[i] } // vs foos.forEach((foo) => {})
Когда вы получаете более сложные преобразования, все становится еще хуже…
const files = [/* some webpack output*/] const manifest = {} _(files) .flatMap((f) => f.origins) .filter(({ name }) => name.indexOf(‘view’) > -1) .mergeWith(manifest, ({ name, files: [entry] }) => ({ [name]: entry })) // vs for (let i = 0; i < files.length; i++) { const file = files[i] for (let j = 0; j < file.origins; j++) { const chunk = file.origins[i] if (chunk.name.indexOf(‘view’) > -1) { const newManifest = {} newManifest[chunk.name] = chunk.files[0] _.merge(manifest, newManifest) } } }
Угу.