Lodash删除从基于ID属性的阵列中删除对象
问题描述:
我正在查看remove()
的lodash文档,我不知道如何使用它。Lodash删除从基于ID属性的阵列中删除对象
说我有朋友的数组,
[{ friend_id: 3, friend_name: 'Jim' }, { friend_id: 14, friend_name: 'Selma' }]
如何从朋友的数组中删除friend_id: 14
?
答
您可以使用过滤器。
var myArray = [1, 2, 3];
var oneAndThree = _.filter(myArray, function(x) { return x !== 2; });
console.log(allButThisOne); // Should contain 1 and 3.
编辑:针对您的特殊代码,使用:
friends = _.filter(friends, function (f) { return f.friend_id !== 14; });
答
Remove使用断言功能。见例如:
var friends = [{ friend_id: 3, friend_name: 'Jim' }, { friend_id: 14, friend_name: 'Selma' }];
_.remove(friends, friend => friend.friend_id === 14);
console.log(friends);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js"></script>
啊。你怎么知道是使用过滤器还是删除?对不起,如果这是一个非常基本的问题.. – user6701863
这只是个人喜好。对我来说,删除是愚蠢的,因为它会改变你的数组,PLUS是返回一个数组,其中删除的值,其中过滤器只是返回过滤的值。 – Scottie
哦,好的。你认为这有意义吗?我正在使用lodash来处理ngrx/store,如下所示:'return assign({},state,{ items:filter(state.items,{id:action.payload.id}) }); – user6701863