Когда вы хотите условно добавить элемент внутри массива, вы, вероятно, сделаете что-то вроде этого:
const animals = ['cow']; const hasCat = true; const hasDog = false; if (hasCat) { animals.push('cat'); } if (hasDog) { animals.push('dog'); } // result: ['cow', 'cat']
Т, здесь другая идея, где мы хотим добавить все элементы, которые зависят от условия внутри литерала массива (во время инициализации массива).
Для того чтобы это сделать, вам понадобятся следующие элементы:
Оператор разложения
Вот полная концепция кода:
const itemCondition1 = true; const itemCondition2 = false; // ... const items = [ ...(itemCondition1 ? [arrayItem1] : []), ...(itemCondition1 ? [arrayItem2] : []), // ... defaultArrayItem ];
Ниже приведен реальный пример, в котором два элемента добавляются на основе соответствующего условия, а третий элемент - по умолчанию.
const hasCat = true; const hasDog = false; const animals = [ ...(hasCat ? ['cat'] : []), ...(hasDog ? ['dog'] : []), 'cow' ]; // result: ['cat', 'cow']
Конечно, вы также можете вызвать конкретную функцию, отвечающую за вычисление условия.
const hasCat = true; function hasDog() { // some calculation logic here return false; } const animals = [ ...(hasCat ? ['cat'] : []), ...(hasDog() ? ['dog'] : []), 'cow' ]
Очень полезно, когда вы хотите сохранить все условия в одном месте. Легко понять логику, проверяя условия для каждого добавленного элемента. Кроме того, для вычисления условия можно использовать специальную функцию.
Спасибо за прочтение.
Надеюсь, вам понравилась статья.Этот метод является
Пожалуйста, рассмотрите возможность стать членом Medium и моим последователем. Это стоит $5 в месяц и дает вам неограниченный доступ к контенту Medium.
Больше контента на PlainEnglish.io .
Подпишитесь на нашу бесплатную еженедельную рассылку . Следите за нами в Twitter , LinkedIn , YouTube , и Discord .Если вам нравятся такие истории и вы хотите продолжать читать мои истории,
Заинтересованы в масштабировании своего программного стартапа? Посмотрите Circuit.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.