2017-02-09 2 views
0

Я не могу lodash _.remove работать в содержании объекта, который выглядит как этотlodash _.remove не работает на содержание объекта

content: { 
code: '8d303377', 
type: 'content', 
repositoryCode: 'default', 
externalLocations: 
    { 
    binaries: 
    { 
     medium: 'http://localhost:4000/image-medium.jpg', 
     small: '' 
    } 
    } 
} 

, и я хотел бы, чтобы удалить запись с пустой строкой (маленький). Я попробовал этот

_.remove(content.externalLocations.binaries, function() { 
    return content.externalLocations.binaries[req.params.variant] === req.body.url; 
}); 

Значение req.params.variant == небольшой

Я попытался также этот

_.forEach(content.externalLocations, function (binary) { 
    _.remove(binary[req.params.variant], { [req.params.variant]: req.body.url }); 
}); 
+0

The 'содержание: ..' блок в коде не представляется действительным JSON , –

+1

двоичные файлы должны быть массивами других мудрых, если вы хотите удалить из объекта json только использование delete obj.binares.somekey –

+0

Мой плохой не json a js object – kyserslick

ответ

1

Как это выглядит, как вы пытаетесь удалить записи из binaries, значения которых равны req.body.url, вы можете сделать:

_.each(content.externalLocations.binaries, (value, key, obj) => { 
    if (req.params.variant === key && req.body.url === value) { 
     _.unset(obj, key); 
    } 
}) 
0

Документация для _.remove состояний

Снимает все элементы от массив, что предикат возвращает truthy для и возвращает массив удаленных элементов [...]
Упор шахта

Ваш binaries объект не является array.If вы хотите удалить использовать свойство объекта delete

delete content.externalLocations.binaries[req.params.variant]; 

var content = { 
 
code: '8d303377', 
 
type: 'content', 
 
repositoryCode: 'default', 
 
externalLocations: 
 
    { 
 
    binaries: 
 
    { 
 
     medium: 'http://localhost:4000/image-medium.jpg', 
 
     small: '' 
 
    } 
 
    } 
 
}; 
 

 
delete content.externalLocations.binaries.small; 
 

 
console.log(content)

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