以角度添加和删除数组之间的项目

这个问题在这里已经有了答案:

  • 如何从JavaScript中的数组中删除特定的元素? 62个答案

  • 您可以将索引作为angular.forEach的第二个参数。 然后我们拼接以从原始数组中删除该项目。 检查下面的代码。

                angular.forEach($scope.results, function (item, index) {
                    if (item.selected) {
                        $scope.list.push(item);
                        $scope.results.splice(index, 1);
                    };
                });
    

    我只是意识到,在angular.forEach循环中使用拼接有一个缺点,那就是它在删除项目之后会重新对阵列进行索引。 所以如果一个物品被移除,紧接着的下一个物品将被跳过。

    所以下面将是正确的解决方案。

    var len = $scope.results.length;
    while (len--) {
        var item = $scope.results[len];
        if (item.selected) {
           $scope.list.push(item);
           $scope.results.splice(len, 1);
        };
    }
    

    谢谢。

    链接地址: http://www.djcxy.com/p/3217.html

    上一篇: add and remove items between arrays in angular

    下一篇: value from object in array, Javascript