Answer
t.me/js_testОтвет:
b
Объяснение:
У нас есть два объекта с абсолютно одинаковыми свойствами и значениями.
Когда b
устанавливается, b[arr[i]]
свойство устанавливается на текущий индекс на каждой итерации. Когда а
устанавливается, spread-оператор
( ...
) будет создавать мелкую копию объекта аккумулятора ( acc
) на каждой итерации и дополнительно устанавливать новое свойство. Эта неглубокая копия дороже, чем не выполнение неглубокой копии.
a
требует создания 2 промежуточных объектов до достижения конечного результата, тогда как b
не создает никаких промежуточных объектов. Поэтому b
создается более эффективно.
Код для проверки:
const arr = [1, 2, 3]; const a = arr.reduce( (acc, el, i) => ({ ...acc, [el]: i }), {} ); const b = {}; for (let i = 0; i < arr.length; i++) { b[arr[i]] = i; };