DEV Community

Discussion on: Array manipulation in JavaScript 🧐

 
mdor profile image
Marco Antonio Dominguez • Edited

I agree depends on the case, some of the issues are related to maintainability other to performance issues, most of the cases is because some people is trying to overcomplicate things because some imaginary scalability issues.

Despite the fact the code is more performant, we should consider:
1 - Number of items
2 - Amount of operations
3 - Think in the different benefits coming from different worlds, FP, OOP, etc.

I saw more issues coming from extremely premature optimizations than performance issues, even with large datasets...

In addition, the code can be even readable

// example 1
const total = numbers.reduce((t, c) => t + (!Number.isInteger(c) ? 0 : (c*2)), 0);

// Example 2
let acc = 0;
for (let i = 0, size = numbers.length; i < size; i++) {
  const cur = numbers[i]
  acc += (!Number.isInteger(cur) ? 0 : (cur * 2));
}

// Example 3
const total = numbers
  .filter(cur => !!cur && Number.isInteger(cur))
  .reduce((t,c) => (t + c* 2), 0)
  // We clean up the falsy values (including 0), and we avoided another iteration

Again, it depends on the conditions,