我有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);
};