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

Dev*_*ate 5 javascript arrays jquery unique

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

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

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

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

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

然后我按照预期选择第6个...... 12 然后我选择第6个......

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

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

Bri*_*ham 20

取自jQuery.unique():

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

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

function unique(array) {
    return $.grep(array, function(el, index) {
        return index == $.inArray(el, array);
    });
}
Run Code Online (Sandbox Code Playgroud)