Проблема Использование _.compact lodash для устранения нулевых значений в массиве объектов

Я манипулирую массивом объектов, которые я получаю из http-запроса, содержащего координаты, для создания маркеров в google-maps, но мне нужно удалить все нулевые значения в массиве. Я пытаюсь использовать компакт, но он возвращает тот же массив без изменений.

// это результирующая структура массива

var array=
[{"id":0,"latitude":45.17850875854492,"longitude":7.773523330688477},{"id":1,"latitude":45.122344970703125,"longitude":7.7135162353515625},{"id":2,"latitude":null,"longitude":null},{"id":3,"latitude":45.11630630493164,"longitude":7.730717658996582},{"id":4,"latitude":45.116214752197266,"longitude":7.730687141418457},{"id":5,"latitude":null,"longitude":null}]

var comp =_.compact(array) 

я не получаю никаких ошибок в cosole, но переменная comp возвращает тот же самый точный массив без удаления нулевых значений

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
1 080
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Все ваши значения — это массивы, а null — это значение ваших свойств. Метод _.compact() работает с примитивами.

Используйте _.reject() и проверьте с помощью _.isNull, если свойства являются null, и объект должен быть удален:

const array =
[{"id":0,"latitude":45.17850875854492,"longitude":7.773523330688477},{"id":1,"latitude":45.122344970703125,"longitude":7.7135162353515625},{"id":2,"latitude":null,"longitude":null},{"id":3,"latitude":45.11630630493164,"longitude":7.730717658996582},{"id":4,"latitude":45.116214752197266,"longitude":7.730687141418457},{"id":5,"latitude":null,"longitude":null}]

const result = _.reject(array, ({ latitude, longitude }) =>
  _.isNull(latitude) || _.isNull(longitude)
)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>

Ty, это сработало, могу ли я использовать такие вещи, как _.uniq или _.filter, с этим методом в этом массиве?

fusolage 22.05.2019 12:30

Вы можете использовать _.filter() и _.uniqBy() (и другие методы by), если вы указываете, на какие свойства должен ссылаться метод.

Ori Drori 22.05.2019 12:31

Вы можете использовать _.pickBy()

Creates an object composed of the object properties predicate returns truthy for

лодаш

Это относится к объекту, поэтому для массива вы можете использовать это:

var comp = _.map(array, item => _.pickBy(item));

Другие вопросы по теме