Как правильно инициализировать массив в случае, когда он не существует на момент вызова метода push()?

Как упростить следующий код, чтобы не требовалось выполнять дополнительные действия для проверки и инициализации массива `arr`, чтобы избежать ошибки при вызове метода `push('hello!')`?
  • 14 сентября 2023 г. 15:36
Ответы на вопрос 2
Если массив `arr` не существует на момент вызова метода `push()`, нужно сначала его инициализировать пустым массивом. Можно сделать это с помощью тернарного оператора:

```javascript
var arr = arr || [];
arr.push('hello!');
```

Такой код проверит, существует ли массив `arr`. Если он не существует, будет инициализирован пустым массивом. Затем можно использовать метод `push()` для добавления элемента в массив.

Если упростить этот код, можно воспользоваться методом `concat()` вместо `push()`:

```javascript
var arr = arr || [];
arr = arr.concat('hello!');
```

Этот код тоже проверяет существование массива `arr` и инициализирует его пустым массивом, если он не существует. Затем он использует метод `concat()` для создания нового массива, содержащего элемент `'hello!'`, и присваивает его переменной `arr`.
Объявление свойства массива в объекте window:

```javascript
Object.defineProperty(window, 'arr', {
	get: function() {
		if (!Array.isArray(window.__arr)) {
			window.__arr = [];
		}
		return window.__arr;
	},
	set: function(arr) {
		window.__arr = arr;
	}
});
```
Похожие вопросы