当数组中的一个元素被删除时,如何使用Angularjs重新洗牌数组中的数字

How to Reshuffle Numbers in an array when one of the element in an array is deleted using Angularjs

本文关键字:数组 何使用 Angularjs 新洗牌 数字 元素 一个 删除      更新时间:2023-09-26

我有一个JSON数组

task= [{taskcode:1, taskName:'abc'},
       {taskcode:2, taskName:'abc1'},
       {taskcode:3, taskName:'abc2'},
           .....
      ];

当我删除名为abc的任务时,其他任务的任务代码应该重新索引,如

task = [{taskcode:1, taskName:'abc1'},
       {taskcode:2, taskName:'abc2'},
           .....
      ];

这些任务是通过从弹出窗口向任务推送值来动态创建的。

我如何做到这一点?

既然您的taskCode直接与对象在数组中的位置相关,为什么您甚至必须保持更新呢?任何时候你要访问一个特定的对象,你就会知道它在数组中的位置,然后你就可以在那个时候加1。

所以你的属性就是index + 1。例如,如果您在ng-repeat中向用户显示任务代码,这就可以了。

<div ng-repeat="task in tasks">
    <p>Task Code: {{$index + 1}}</p>
    <p>Task Name: {{task.taskName}}</p>
</div>

或者,如果您需要在某些其他操作之前枚举这些taskCode,您可以创建一个循环来完成该操作。这将有助于防止您在每次小操作之后重复地重新索引数组。现在,只有在绝对必要的时候才能重新索引它。

$scope.enumerateTaskCodes = function() {
    $scope.tasks.forEach(function (task, index) {
         task.taskCode = index + 1;
    };
};