Javascript 删除由元素数据生成的重复值

Javascript 删除由元素数据生成的重复值,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一组图像,每个图像都有data type=“type,type”,因此为了让我的生活更轻松,我打算获取数据类型,并将它们放入一个数组(将每个图像包装在span中),然后将它们附加到“category”元素中 $('li.grid item')。每个(函数(){ //获取对当前li的引用 var$el=$(本); //从其数据类属性获取url var arr=$el.find('img')。data('type')。split(','); $。每个(arr,函数(索引,值){ $el.find

我有一组图像,每个图像都有
data type=“type,type”
,因此为了让我的生活更轻松,我打算获取数据类型,并将它们放入一个数组(将每个图像包装在span中),然后将它们附加到“category”元素中

$('li.grid item')。每个(函数(){
//获取对当前li的引用
var$el=$(本);
//从其数据类属性获取url
var arr=$el.find('img')。data('type')。split(',');
$。每个(arr,函数(索引,值){
$el.find('.category')。追加(''+value+'');
$el.addClass(价值);
});
});

  • 它工作正常,但每个值重复20次,请帮助。如何删除那些重复的数组值?请提供帮助,提前感谢。

    我认为最好先在数组中收集所有现有类型(并且仅在尚未存在的情况下向其添加新值)。之后,可以为每种类型添加跨度元素。您应该只有一个“category”容器来列出所有类型

    更新

    您的函数经常执行(超过20次),因为每次$grid.imagesLoaded()取得进展时都会调用它。当你“完成”的时候叫它。 试着替换

    $grid.imagesLoaded().progress()
    


    在加载所有图像后仅调用函数一次。此外,您可以在重新填充类别容器之前清空它。

    我没有看到任何复制20x的内容。“chungtinhlakho”说了什么!我也试过另一把小提琴,但我无法复制这个问题。要么是其他代码有问题,要么是其他问题。请提供更多信息!我把它放在这里,看一看,谢谢!谢谢Eytibi,但我不知道怎么做。请看一下这本书,你就会明白我的意思了。我想。。。我想我找到你的问题了。您的函数经常执行(超过20次),因为每次$grid.imagesLoaded()取得进展时都会调用它。在“完成”时调用它尝试将“$grid.imagesLoaded().progress(function()”替换为“$grid.imagesLoaded().done(function()”另外,你可以在重新填充分类容器之前清空它。哇!它工作了!!!!谢谢!!!!现在如何标记我的问题得到了回答?对不起,我是新来的,我在谷歌上搜索了一下,但可以找到绿色的复选标记。是的,收到了!谢谢Eytibi的帮助。
    $grid.imagesLoaded().done()