如何使用javascript或lodash从数组中删除项目

时间:2015-05-18 20:48:38

标签: javascript angularjs lodash

我的目标如下。我正在角度使用它,并将lodash注入其中。我想使用choice2删除第二项,因为我将传递给匹配。

    $scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' 

5 个答案:

答案 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)