我有两个数组,分别称为“objects”和“appliedObjects”。我试图在 Javascript 和/或 Angular 中想出一种优雅的方式来将对象从一个数组移动到另一个数组。
最初我做了这样的事情:
$scope.remove = function () {
angular.forEach($scope.appliedObjects, function (element, index) {
if (element.selected) {
element.selected = false;
$scope.objects.push(element);
$scope.appliedObjects.splice(index, 1);
}
});
}
$scope.add= function () {
angular.forEach($scope.objects, function (element, index) {
if (element.selected) {
element.selected = false;
$scope.appliedObjects.push(element);
$scope.objects.splice(index, 1);
}
});
}
但后来我意识到,当值从循环数组中删除时,它不会添加或删除所有其他项目,因为它是按索引进行的。
然后我尝试使用一个临时数组来保存要添加或删除的项目列表,然后我开始遇到奇怪的引用问题。
我开始思考这个问题的最佳解决方案是什么……非常感谢任何帮助和/或指导。
原文由 morganpdx 发布,翻译遵循 CC BY-SA 4.0 许可协议