Jquery - 检查数组中是否存在对象

时间:2017-03-12 23:44:24

标签: jquery

我正在将对象添加到数组中,如下所示:

fontSizeArray.push({element: $(y).prop("tagName").toLowerCase(), orginalSize:$(y).css("font-size"), size:$(y).css("font-size")});

这个代码在循环中,我想要做的是消除重复,因为有些项目将具有相同的tagName和相同的字体大小

我正在尝试在数组中使用,但它不起作用,重复仍然存在。

if($.inArray({element: $(y).prop("tagName").toLowerCase(), orginalSize:$(y).css("font-size"), size:$(y).css("font-size")}, fontSizeArray) == -1)
                {
                        fontSizeArray.push({element: $(y).prop("tagName").toLowerCase(), orginalSize:$(y).css("font-size"), size:$(y).css("font-size")});
                }

我做错了什么?

1 个答案:

答案 0 :(得分:1)

要在数组中查找对象,可以使用.grep

searchArray = $.grep(fontSizeArray, function(n) {
    return n.element == $(y).prop("tagName").toLowerCase() && n.orginalSize == $(y).css("font-size") && n.size == $(y).css("font-size");
});

if(searchArray.length == 0){
    console.log("Not find");
}else{
    console.log("find");
}

.grep查找满足过滤函数的数组元素。原始数组不受影响,并返回一个数组。

我使用所有属性来查找对象,但是您只能使用tagName来查找元素以避免推送重复。

您可以在此处查看https://jsfiddle.net/egfg3dmc/3/