我的目标如下。我正在角度使用它,并将lodash注入其中。我想使用choice2删除第二项,因为我将传递给匹配。
$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3'
答案 0 :(得分:4)
您可以使用lodash的删除方法。
$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' }];
_.remove($scope.choices, function(n) {
return n.id == 'choice2';
});
答案 1 :(得分:0)
<span></var><var></span>
答案 2 :(得分:0)
在vanilla-js中,如果您不介意创建新对象,可以使用filter
:
$scope.choices = $scope.choices.filter(function(obj) {
return obj.id !== 'choice2';
});
答案 3 :(得分:0)
_.filter($scope.choices, function(choices) {
if(choices.id !== 'choice2') {
// do something
}
});
这是以编程方式执行此操作,以防您想要使用其他选项。你不会直接找到消除一个选项的地步,就这样离开它,在我的情况下,你正在取消选项,你告诉应用程序,忽略它后,然后去做一些事情。如果您想删除该选项,请转到xavier hans answer
答案 4 :(得分:0)
_.remove
方法通过删除第二个参数中传递的任何匹配来扩充给定数组。
在这种情况下,传递一个属性为id
的对象和var id
的值。迭代对象数组时,lodash将删除与该属性/值配对匹配的任何对象。
见下面的例子:
$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' }]
var id = 'choice2';
_.remove($scope.choices, {id: id});
console.log(choices)