我正在将对象添加到数组中,如下所示:
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")});
}
我做错了什么?
答案 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/