@xxvxx
....

Как правильно написать функцию?

Как Правильно поступать в таких ситуациях ?
Вот так нельзя Arr[num] еще нет
function (num) {
            Arr[num].push(data);
            }


Вот так можно, но Arr[num] = [] затирает старые данные
function (num) {
            Arr[num] = [];
            Arr[num].push(data);
            }


Как быть ? щас я понял что могу сделать проверку
function (num) {
            if (Arr[num] == null) {
            Arr[num] = [];
            Arr[num].push(data);
            } else {
            Arr[num].push(data);
            }
            }

Как Правильно поступать в таких ситуациях ?

  • Вопрос задан
  • 64 просмотра
Решения вопроса 2
@Persotr27
Вообще, идея последнего кода является правильной. Только стоит проверить элемент на undefined, если он может "не быть"

if (Arr[num] === undefined || Arr[num] === null)

Ну или еще компактный вариант

function foo(num) {
  Arr[num] = Arr[num] === undefined || Arr[num] === null ? [] : Arr[num];
  Arr[num].push(data);
}
Ответ написан
alphatom
@alphatom
Смотря какую задачу вы решаете.

В общем примерно так как вы написали, только проверка Arr[num] === undefined.

Если у вас Arr это массив (var Arr = []), и вы знаете сколько у вас элементов будет то задайте ему размер заранее:
var Arr = new Array(10).fill().map(el => [])

Или если у вас Arr это var Arr = {}, те хеш таблица, то тогда ваш код нормальный.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽