2015-09-22 3 views
0

Я пытаюсь заменить петлю for на _.omit, но, похоже, не может заставить ее работать правильно.Как правильно использовать _.omit

Вот мой (рабочий) for цикла:

for (var propt in params.filter()) { 
    if (params.filter()[propt] === '') { 
     delete params.filter()[propt]; 
    } 
    } 

и здесь подчеркивание кода я пытаюсь заменить его:

_.omit(params.filter(), function(value) { 
    return value === ''; 
}); 

версия Подчеркивания не опускает недвижимость с пустым значением, как я ожидал.

+0

Почему ваш код повторно вызывает 'params.filter()'? Что он делает, всегда возвращайте один и тот же объект? (Почему) Вы хотите изменить это? Как вы собираетесь использовать его впоследствии? – Bergi

ответ

2

Ваша первая версия изменяет все, что params.filter() возвращает (объект ...) и удаляет соответствующие (пустые) свойства из самого объекта.

Вторая, подчеркивающая версия, возвращает копию этого объекта со всеми свойствами, отличными от соответствующих.

Если вы можете переназначить это значение, вы можете использовать вывод из _.omit(...) в качестве нового значения.

+0

Ahhh true, спасибо. Есть ли способ использовать '_.omit' в этом случае? – MattDionis

Смежные вопросы