在Angular中将一个数组中的项目推送到另一个数组

3
我是一个使用AngularJS编写应用程序的开发者,想知道如何将一个数组中的元素推入到另一个数组中。
下面是示例代码:
$scope.tasks = [
     {title: "Do the dishes"},
     {title: "Walk the dog"},
];
$scope.addToTasksDone = function() {// IM FAILNG HERE};
$scope.tasksDone = [];

我该如何将值为“Do the dishes”的项目推送到tasksDone数组中?

1
从数组中取出元素,获取其索引并将其“splice”,然后将其推送到另一个数组。 - Pankaj Parkar
我需要这样做,因为它应该像一天的任务计划。 - Julian Be
我已经发布了答案,但我会选择把最佳答案给予Piyush,因为他帮助我达成了目标! - Julian Be
但有更简单的方法。 - Julian Be
显示剩余4条评论
6个回答

3
$scope.tasks = [
{title: "Do the dishes"},
{title: "Walk the dog"},
];
$scope.tasksDone = [];
$scope.addToTasksDone = function(index) {// IM FAILNG HERE};
$scope.tasksDone.push($scope.tasks[index]);
}

它只推送数组的第一个项目。 - Julian Be
这只是一个使用索引的示例。 - Piyush.kapoor
请提供索引,例如 $scope.addToTasksdone(1)。 - Piyush.kapoor

1
$scope.tasks.push(yourObject)

这个问题之前已经被问过了,在这里

1
$scope.tasks = [
    { title: "Do the dishes" },
    { title: "Walk the dog" }
]; 
$scope.tasksDone = [];
for(var i in $scope.tasks){
    $scope.tasksDone.push($scope.tasks[i]);
}

0

这是正确的代码。

我在ng-repeat中有一个列表,所以我必须将$scope.addToTasksDone(index)更改为$scope.addToTasksDone($index)

当然,在HTML中也要这样做,例如:ng-click="addToTasksDone($index)


0
$scope.tasks = [
{title: "Do the dishes"},
{title: "Walk the dog"},
];
 $scope.tasksDone = [];
angular.forEach(tasks , function(value, key) {
  this.push(key + ': ' + value);
},tasksDone);
};

0
你可以使用以下代码将特定值推送到新数组中。
$scope.tasks = [
     {title: "Do the dishes"},
     {title: "Walk the dog"},
];
$scope.tasksDone = [];
$scope.addToTasksDone = function(specificValue) {
                           // IM FAILNG HERE};
     tasks.forEach( (object) => {
          if ( object[title] === specificValue ) {
                $scope.tasksDone.push(object);
          }
     });
}

以上代码将推送每个包含特定值的对象... 您可以通过将“洗碗”值作为参数传递来调用addToTasksDone。
示例调用
$scope.addToTasksDone("Do the dishes");

敬礼

Ajay


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接