JQuery Unique()函数无法正常工作

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

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

所以这里是我选择第5项后相关数组的一些截图。

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

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

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

Aaand现在我们有一个神秘的复制品! 为什么??? 在此处输入图像描述

这种情况始终如一 每一次。 请注意, 我最后选择的项目并不重要 。 我添加了多达10个虚拟物品,它总是第6个被弄糊涂了。

取自jQuery.unique() :

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

如果您想获得一个独特的字符串或数字数组,则需要使用自己的函数。 以下是一个类似于你之前回答的问题 :

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