我尝试了多种方法来解决这个问题,任何抬头都会有很大的帮助。
我在我的项目中使用ng-draggable.js
进行拖放功能,所以最初我将元素设置为array A
,当我将一个元素拖放到数组中时,我不知道如何用位置捕获该数组中已更改的元素。
说A = [1,2,3]
现在客户通过拖放功能改变位置。
它变为B = [2,1,3]
。当我执行A and B
的差异时,我必须使用位置获取已更改的元素[2,1]
,以便我可以将其发送到具有更新位置的服务器元素。
我试过underscore.js _.difference(A,B)
,它给了我空数组
答案 0 :(得分:0)
似乎.difference()
返回设置差异,但索引在这里很重要:
var a = [1,2,3];
var b = [2,1,3];
var diff = a.filter(function(value, index) {
return b[index] != value;
}); //[1,2]
var positions = diff.map(function(value) {
return b.indexOf(value);
}); // [0,1]

然后,对于每个值,您需要使用b
.indexOf()
中找到位置