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

如何使用javascript或lodash从数组中删除项,javascript,angularjs,lodash,Javascript,Angularjs,Lodash,我的目标在下面。我在angular中使用它,并将lodash注入其中。我想删除第二项,使用choice2作为我将传递给match的内容 $scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' 在vanilla js中,如果您不介意创建新对象,可以使用: $scope.choices=$scope.choices.filter(函数(obj)){ 返回obj.id!==“choice2”; });

我的目标在下面。我在angular中使用它,并将lodash注入其中。我想删除第二项,使用choice2作为我将传递给match的内容

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

在vanilla js中,如果您不介意创建新对象,可以使用:

$scope.choices=$scope.choices.filter(函数(obj)){
返回obj.id!==“choice2”;
});

在vanilla js中,如果您不介意创建新对象,可以使用:

$scope.choices=$scope.choices.filter(函数(obj)){
返回obj.id!==“choice2”;
});

您可以使用lodash的删除方法

$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' }];
_.remove($scope.choices, function(n) {
    return n.id == 'choice2';
});

您可以使用lodash的删除方法

$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' }];
_.remove($scope.choices, function(n) {
    return n.id == 'choice2';
});
这是一种编程方式,以防您想使用其他选项。你不会直接去取消一个选项,然后就这样离开,在我的情况下,你是在取消这个选项,你告诉应用程序,忽略它后,然后去做一些事情。如果你想去掉这个选项,那就用答案吧


这是一种编程方式,以防您想使用其他选项。你不会直接去取消一个选项,然后就这样离开,在我的情况下,你是在取消这个选项,你告诉应用程序,忽略它后,然后去做一些事情。如果您只想删除该选项,那么使用answer

执行
方法通过删除在第二个参数中传递的任何匹配项来增加给定数组

在这种情况下,传递一个具有属性
id
和var
id
值的对象。迭代对象数组时,lodash将删除与该属性/值配对匹配的任何对象

见下例:

$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' }]
var id = 'choice2';
_.remove($scope.choices, {id: id});
console.log(choices)

\uuU4.remove
方法通过删除在第二个参数中传递的任何匹配项来扩充给定数组

在这种情况下,传递一个具有属性
id
和var
id
值的对象。迭代对象数组时,lodash将删除与该属性/值配对匹配的任何对象

见下例:

$scope.choices = [{ id: 'choice1' }, { id: 'choice2' }, { id: 'choice3' }]
var id = 'choice2';
_.remove($scope.choices, {id: id});
console.log(choices)

一旦找到匹配项,只需循环将其剪接并返回。如果将同一个对象引用传递给从数组中删除该项的函数,则只需使用indexOf进行剪接…从SO社区中看到此问题的反对票令人不安。任何时候,只要你想学习新的东西,或者一个模块/框架如何与另一个模块/框架相适应,或者任何与此相关的东西,你都需要以最简单的形式看到它,然后你就可以更快地掌握它。而蜂拥到这些问题上的人都很了解这个问题,所以这个问题看起来太简单了,或者说这个问题太愚蠢了,我讨厌这个+代表问题。感谢您的提问,找到匹配项后立即循环将其剪接并返回。如果您将相同的对象引用传递给从数组中删除该项的函数,则只需使用indexOf进行剪接…从SO社区中看到此问题的反对票令人不安。任何时候,只要你想学习新的东西,或者一个模块/框架如何与另一个模块/框架相适应,或者任何与此相关的东西,你都需要以最简单的形式看到它,然后你就可以更快地掌握它。而蜂拥到这些问题上的人都很了解这个问题,所以这个问题看起来太简单了,或者说这个问题太愚蠢了,我讨厌这个+代表问题。谢谢你的提问,如果你想在一场比赛后回来,那就不太理想了。。。筛选器仍将运行…是的,我假设可能有多个匹配项。否则就更好了。看看数据,我觉得不是这样的。你可以用
一些
把它剪接起来。。。需要使用polyfill findindex或其他一些或任何适合老年人的工具!!在这种情况下使用some()的问题是,它需要一个外部回调额外的var和闭包来获取含义信息(index、val等),这意味着函数可能无法重复使用。还有一个问题是,过滤器没有删除任何内容,而是复制了一些内容。如果你想在一次匹配后返回,那就不太理想了。。。筛选器仍将运行…是的,我假设可能有多个匹配项。否则就更好了。看看数据,我觉得不是这样的。你可以用
一些
把它剪接起来。。。需要使用polyfill findindex或其他一些或任何适合老年人的工具!!在这种情况下使用some()的问题是,它需要一个外部回调额外的var和闭包来获取含义信息(index、val等),这意味着函数可能无法重复使用。此外,过滤器还存在一个问题,即不删除任何内容,而是复制某些内容。请描述您的解决方案,而不是只发布代码。请描述您的解决方案,而不是只发布代码。