#javascript #arrays
Вопрос:
У меня есть массив в Javascript. Это похоже на то, что показано ниже.
source_array=[["A","B","C"],["A","B","C"],["A","B","C"]]
;
Я создаю его с помощью source_array.push(anotherArray)
. Во время выполнения моего кода я удаляю записи из индексов одну за source_array[1].splice(0,1)
другой . Так что от [["A","B","C"],["A","B","C"],["A","B","C"]]
я ожидаю получить [["A","B","C"],["B","C"],["A","B","C"]]
;
Если я буду делать это достаточно часто, то в итоге получу [["A","B","C"],[],["A","B","C"]]
.
Как правильно проверить, пуст ли теперь source_array[1]? Похоже, у меня это не работает.
If (source_array[1] == undefined)
это оказывается ЛОЖЬЮ вместо ИСТИНЫ. Он выдает ЛОЖЬ только после того, как я закончу удалять элементы. Это хорошо работает, если я проверю наличие source_array[2] in a source_array[["A","B","C"],["A","B","C"]]
Я думаю, что перепробовал все, что нашел в Интернете.
Я чувствую, что это будет что-то базовое, но я дилетант, и это…бьет меня.
Комментарии:
1.
if (source_array[1].length === 0)
?2. Пустого массива нет
undefined
-вам нужно проверить, является ли это.length
свойством0
.
Ответ №1:
Хотя массив пуст, он не является неопределенным.
Всегда проверяйте свойство длины массива, чтобы определить, является ли целевой массив пустым.
Таким образом:
let arr = [];
let arr2 = ['foo', 'bar'];
arr.length === 0; // true, empty
arr2.length === 0; // false, populated