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

时间:2013-11-13 19:34:45

标签: javascript jquery arrays unique

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

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

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

在这里您可以看到所有选定的项目。正如预期的那样有10个。这个断点就在unique()调用之前。 Here you see ALL selected items.  There are 10, as expected.

在这里您可以看到唯一的选定项目。正如预期的那样,有5个。 Here you see unique selected items.  There are 5, as expected.

然后我选择第6个...... 12,正如所料...... And then I select the 6th one...

Aaand现在我们有一个神秘的复制品!为什么??? enter image description here

这种情况一直发生;每一次。请注意我选择的项目无关紧要。我添加了多达10个虚拟物品,它总是第6个被弄糊涂了。

1 个答案:

答案 0 :(得分:20)

取自jQuery.unique()

  

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

如果您想获得一个独特的字符串或数字数组,则需要使用自己的函数。这是从a previously answered question similar to yours中获取的:

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