@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);
            }
            }

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

  • Вопрос задан
  • 72 просмотра
Решения вопроса 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 = {}, те хеш таблица, то тогда ваш код нормальный.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы