MaKvc
@MaKvc
Отчаянный веб-разработчик

Как инициализировать массив если он не существует в момент выполнения push?

Добрый день! Следующий код может привести к ошибке если arr не будет являться массивом:
window.arr.push('hello!')
Можно добавить проверку и инициализацию:
if (!Array.isArray(window.arr)) {
    window.arr = []
}

window.arr.push('hello!')


Можно ли упростить код дабы не плодить доп. действия?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Обычно так не делается, но если очень хочется, то можно, например так:
Object.defineProperty(window, 'arr',
    { 
        get: function() {
            if (!Array.isArray(window.__arr))
            {
                window.__arr = []
            }
            return window.__arr
        },
        set: function(arr) {
            window.__arr = arr
        } 
    }
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы