Рубрики
Без рубрики

Как удалить фальсифицировать значения из массива в JavaScript

Есть много способов удаления элементов из массива в JavaScript, но какой самый простой способ удалить все ложные значения из массива? Чтобы ответить на этот вопрос, мы сделаем тес, посмотрите правде против фальсифицированных ценностях и введите принуждение в пределах

Автор оригинала: Dylan Attal.

Есть много способов удаления элементов из массива в JavaScript, но какой самый простой способ удалить все ложные значения из массива? Для того, чтобы ответить на этот вопрос, мы посмотрим на то, что правда против фальсифицированных ценностях и типа принуждения в контексте скрипты алгоритма.

Алгоритм Инструкции

Предоставил тестовые случаи

  • Bouncer ([7, ATE »," ", false, 9]) должен вернуться [7, «ATE», 9] Отказ
  • Bouncer ("А", "B", "C"]) должен вернуться [«А», «B», «C»] Отказ
  • Вышибала (false, null, 0, nan, undefined, "" "]) должен вернуться [] Отказ
  • Bouncer ([1, NULL, NAN, 2, undefined]) должен вернуться [1, 2] Отказ

Решение № 1: .Filter () и Boolean ()

Педак

Понимание проблемы : У нас есть один вход, массив. Наша цель – удалить все фальсифицировать значения из массива, затем верните массив.

Хорошие люди на FreeCodeCamp сообщили нам, что фальсифицированные значения в JavaScript являются ложь , null , 0 , “” , undefined и Нан Отказ

Они также упали на нас главную подсказку для нас! Они предлагают преобразовывать каждое значение массива в логическое значение для достижения этой проблемы. Я думаю, что это отличный намек!

Примеры/тестовые случаи : Наши предоставляемые испытательные случаи показывают нам, что если входной массив содержит только значение фальсификации, то мы должны просто вернуть пустой массив. Это довольно просто.

Структура данных : Мы собираемся придерживаться массива здесь.

Давайте поговорим о .Filter () :

.Filter () Создает новый массив со всеми элементами, которые передают тест, реализованный предоставленной функцией.

Другими словами, .Filter () Проходит каждый элемент в массиве и сохраняет все элементы, которые проходят определенный тест. Все элементы в массиве, которые отказались от того, что тест отфильтровывают – они удалены.

Например, если у нас был массив номеров, и мы только хотели, чтобы цифры больше 100, мы могли бы использовать .Filter () достичь этого:

let numbers = [4, 56, 78, 99, 101, 150, 299, 300]numbers.filter(number => number > 100)// returns [ 101, 150, 299, 300 ]

Давайте поговорим о намекании преобразования каждого элемента до логика. Это хороший намек, потому что мы можем использовать .Filter () Чтобы вернуть массив только правдивыми ценностями.

Мы собираемся достичь этого через КОНЦЕРИЗАЦИЯ Тип JavaScript Отказ

JavaScript дает нам полезные функции для преобразования одного типа данных в другое. Строка () Преобразуется в строку, Номер () преобразуется на номер, а Boolean () преобразуется в логию.

Например:

String(1234)// returns "1234"
Number("47")// returns 47
Boolean("meow")// returns true

Boolean () Функция мы будем реализовывать с этой задачей. Если аргумент предоставлен Boolean () это правда, то Boolean () вернется истинный. Если аргумент предоставлен Boolean () это ложно, то Boolean () вернется ложь Отказ

Это полезно для нас, потому что мы знаем из инструкций, которые только ложь , null , 0 , “” , undefined и Нан ложно в JavaScript. Каждое другое значение – это правда. Зная, что, если мы конвертируем каждое значение в входном массиве на логическое значение, мы можем удалить все элементы, которые оценивают в ложь И это будет удовлетворять требованиям к этой проблеме.

Алгоритм :

  1. Определите, какие значения в arr являются фальсию.
  2. Удалите все фальсифицированные значения.
  3. Верните новый массив, который содержит только правдивые значения.

Код : Увидеть ниже!

Без комментариев и удаление локальной переменной:

Если у вас есть другие решения и/или предложения, пожалуйста, поделитесь в комментариях!

Эта статья является частью сценариев алгоритма серии FreeCodecamp.

Эта статья Ссылки FreeCodecamp Основные алгоритмы сценариев: Falsy Bouncer.

Вы можете следовать за мной на Средний , LinkedIn и Github !