Может ли кто-нибудь объяснить мне вторую строчку? Почему без этого это не будет работать правильно?Что означает этот код? JavaScript
dataStuff.forEach(function (a) {
grouped[a.Tag] = grouped[a.Tag] || [];
grouped[a.Tag].push(a);
});
Может ли кто-нибудь объяснить мне вторую строчку? Почему без этого это не будет работать правильно?Что означает этот код? JavaScript
dataStuff.forEach(function (a) {
grouped[a.Tag] = grouped[a.Tag] || [];
grouped[a.Tag].push(a);
});
dataStuff.forEach(function (a) {
grouped[a.Tag] = grouped[a.Tag] || []; //if grouped[a.Tag] array is undefined make it an array
grouped[a.Tag].push(a); //try to push into array.
});
Объясняя свой код.
Линия
grouped[a.Tag].push(a);
предполагается push
значений а в массив grouped[a.Tag]
. Если это не так, то grouped[a.Tag]
массив не определен, вы получите сообщение об ошибке grouped[a.Tag] is undefined
. Поэтому для решения этой проблемы эта линия
grouped[a.Tag] = grouped[a.Tag] || [];
используется.
Здесь grouped[a.Tag] || []
если вообще grouped[a.Tag]
не определен ваша выше строка будет эквивалентен
grouped[a.Tag] = [];
То есть создать новый массив.
Else, если grouped[a.Tag]
определено, тогда вам не нужно ничего делать, поэтому просто назначьте его самому себе.
Итак, идея состоит в том, что grouped[a.Tag]
не определено, а затем создайте новый массив, иначе ничего не сделайте, поскольку вам хорошо идти.
Попробуйте объяснить, что 'сгруппировано [a.Tag] .push (a);' делает сначала. Ваш ответ основывается на вашем понимании этой самой линии. – zerkms
Что будет работать неправильно? Каков вход и ожидаемый результат? Вопрос очень неясен. – freakish