@Denioo

Как избежать ошибки при попытке применить spread не к массиву?

Как избежать ошибки при попытке применить spread не к массиву?

Например:

const arr1 = ['a, 'b', 'c]
const arr2 = ['g, 'g', 't', 'y']
const arr3 = [1, 2, 3, 4]

const allArr = [...arr1, ...arr2, ...arr3]

arr1 всегда содержит массив, но arr2 и arr3 могут быть пустыми, а может быть один не пустой а другой пустой, но если развернуть пустоту в массив, то вылетает ошибка. Как этого избежать? Городить кучу проверок?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Убрать всех, кто не массив; заменить spread на flat:

[ arr1, arr2, arr3 ].filter(Array.isArray).flat()
Ответ написан
Комментировать
hzzzzl
@hzzzzl
пустой это null? пустой массив [] можно развернуть

a1 = [2,43,5]
a2 = []
[...a1, ...a2]
// (3) [2, 43, 5]


если null/undefined , то да городить кучу проверок
Ответ написан
Комментировать
WblCHA
@WblCHA
const allArr = [...arr1, ...(arr2 || []), ...(arr3 || [])];

Не то, чтобы самое эффективное решение, но зато самое короткое.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы