Javascript JQuery Unique()函数工作不正常

Javascript JQuery Unique()函数工作不正常,javascript,jquery,arrays,unique,Javascript,Jquery,Arrays,Unique,我正在开发一个允许用户选择多张“卡”的界面。每张卡都有一个“数据名”属性,还可能有一个相应的菜单项。如果他们在主视图中选择了卡,它也会高亮显示菜单项。单击某个对象时,我将“selected”类添加到该对象中。然后,我获取所有“选定”项,并计算唯一的数据名属性,以获取实际选定项的数量 当选择最多5个项目时,此功能非常有效。出于某种原因,在第6项中,unique()函数似乎停止正常工作。我无法用jsfiddle复制这个问题,但是代码没有那么复杂,因为在本地我也在处理“类型”,但我认为这与问题无关 在

我正在开发一个允许用户选择多张“卡”的界面。每张卡都有一个“数据名”属性,还可能有一个相应的菜单项。如果他们在主视图中选择了卡,它也会高亮显示菜单项。单击某个对象时,我将“selected”类添加到该对象中。然后,我获取所有“选定”项,并计算唯一的数据名属性,以获取实际选定项的数量

当选择最多5个项目时,此功能非常有效。出于某种原因,在第6项中,unique()函数似乎停止正常工作。我无法用jsfiddle复制这个问题,但是代码没有那么复杂,因为在本地我也在处理“类型”,但我认为这与问题无关

在我选择了第5项之后,这里是一些相关阵列的屏幕截图

在这里您可以看到所有选定的项目。正如预期的那样,有10个断点。此断点正好在unique()调用之前。

在这里您可以看到唯一的选定项目。如预期,共有5个。

然后我选择第六个…12,正如预期的那样。。。

aa现在我们有了一个神秘的复制品为什么???

这种情况经常发生;每一次。请注意,我最后选择哪个项目并不重要。我已经添加了多达10个虚拟项目,但它总是第6个让人困惑的项目。

摘自:

Description:对DOM元素数组进行就地排序,删除重复项。请注意,这只适用于DOM元素的数组,而不适用于字符串或数字

如果您想获得字符串或数字的唯一数组,则需要使用自己的函数。这里有一个来自:

function unique(array) {
    return $.grep(array, function(el, index) {
        return index == $.inArray(el, array);
    });
}