我正在尝试创建一种在两个方框之间移动项目的方法。
我在左框中填写了项目。单击某个项目时,它会移动到右侧框。
我可以在左侧框中填写几个我可以移动的项目。
如果我已经从左侧移动了一个项目,我不应该在左侧框中看到该项目。
要做到这一点。我从左框数组中创建了一个removeDuplicate()。
但是我有一个错误,即使我把它放在右边的盒子里,也会让一个物品在左侧盒子上出现。
我做了一个JSFiddle来证明这个问题。
如果您点击Item_01中的三个项目,则从Item_02中选择三个项目。这使得右侧框中有六个项目。如果你回到Items_01。您之前选择的三个项目现在不应该在lefyt框中。但正如你所看到的,其中三个仍在那里。
所以我的removeDuplicate()不起作用。我无法弄清楚原因。
我真的需要帮助。
function removeDuplicates() {
//alert("klick");
for(var i=0; i < arrItems.length; i++) {
for(var j=0; j < arrSelectedItems.length; j++) {
if(JSON.stringify(arrItems[i]) == JSON.stringify(arrSelectedItems[j])) {
arrItems.splice(i, 1);
}
}
}
}
对此问题的建议的回应与另一个问题相同。 这不一样,因为我不想创建一个新数组。我想删除现有数组中的重复项。
答案 0 :(得分:0)
答案 1 :(得分:0)
我的建议是使用underscore.js库:
var _ = require('underscore')
var left = [1,2,3,4,5]
var right = [2,5,6,7]
left = _.difference(left, right)
console.log('left', left) // left [ 1, 3, 4 ]
console.log('right', right) // right [ 2, 5, 6, 7 ]