Я продолжу и не соглашусь с тобой здесь. Я думаю, что это очень сильно зависит от того, думаете ли вы в 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)
    }
  }
}

Угу.