тот же .map() в отличие от for (let i = 0; ...) arr.push(i) гарантирует, что на входе будет массив n элементов, на выходе будет массив n элементов (можно оптимизировать выделение памяти), и что для каждого элемента переданная функция будет вызвана ровно один раз