我有2个清单。

我有一个基于splice的方法的Angular服务,该服务使我可以通过items动作根据它们的索引从第一个列表(称为“ ng-click”)中删除项目。

  service.removeItem = function (itemIndex) {
    items.splice(itemIndex, 1);
  };


我想做的是,使用传递给bought的相同索引将已删除的项目添加到第二个列表(称为“ slice”)。

我想也许可以将此功能放入相同的功能(removeItem)中,如下所示:

  service.removeItem = function (itemIndex) {
    bought.push(itemIndex);
    items.splice(itemIndex, 1);
  };


但是,这似乎不起作用。我尝试了一些变体(例如bought.push(items.itemIndex)),但未成功。

最佳答案

使用splice在第二个数组的相同索引处插入要删除的元素。

service.removeItem = function (itemIndex) {
    var currItem = items[itemIndex];
    // Insert the element to be removed
    // at the same index in the other array
    bought.splice(itemIndex, 0, currItem);
    items.splice(itemIndex, 1);
  };


或者代替使用之前访问的元素,而使用删除元素后返回的那个。

service.removeItem = function (itemIndex) {
    var currItem = items.splice(itemIndex, 1);
    bought.splice(itemIndex, 0, currItem);
};

10-08 04:38