Вот интересный способ инициализировать произвольное количество объектов без явной инициализации массива значений.Этот ответ очень похож на ответ Vol7ron , за исключением того, что в нем используется функция генератора для ленивой итерации значений без предварительно выделенного массива.Итератор, возвращаемый initialize()
, будет выполнять итерацию только до тех пор, пока требуется назначение деструктурирования , поэтому убедитесь, что вы не используете ...
параметр rest в своем задании деструктуризации, иначе ваш итератор будетникогда не прекращать.
function * initialize (fn) { while (true) { yield fn() } }
const [obj1, obj2, obj3, obj4, obj5, obj6] = initialize(() => ({}))
// all initialized
console.log(obj1, obj2, obj3, obj4, obj5, obj6)
// all unique
console.log(new Set([obj1, obj2, obj3, obj4, obj5, obj6]).size)