Условное добавление элемента в массив в JavaScript

RedDeveloper
23.02.2023 12:16
Условное добавление элемента в массив в JavaScript

Условное добавление нового элемента внутри литерала массива

Когда вы хотите условно добавить элемент внутри массива, вы, вероятно, сделаете что-то вроде этого:

const animals = ['cow'];
const hasCat = true;
const hasDog = false;

if (hasCat) {
  animals.push('cat');
}

if (hasDog) {
  animals.push('dog');
}

// result: ['cow', 'cat']

Т, здесь другая идея, где мы хотим добавить все элементы, которые зависят от условия внутри литерала массива (во время инициализации массива).

Для того чтобы это сделать, вам понадобятся следующие элементы:

Оператор разложения

  • Тернарный операторВ приведенном выше примере создается массив, а затем каждое условие проверяется с помощью соответствующего оператора if.
  • Bu
  • Булево условие

Вот полная концепция кода:

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.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.