我有一个javascript函数,它返回一个节点或元素数组,但它包含重复项。我四处搜索并找到了一些函数来获取数组的唯一项,但它似乎只适用于字符串或简单类型,当将其应用于DOM数组时,它什么也不做。我想这和物品是物体有关。
按照一些答案的建议使用ES6的设置是行不通的。另一个建议使用筛选函数检查该项在数组中是否已有索引。同样,这两种方法都不适用于DOM对象。
如果有人能指出我如何删除这些副本,我将不胜感激。事先谢谢!
更新
@Kroltan似乎理解我的意思,但对于其他人来说,这里有一个返回重复节点的函数:
function (
selector) {
const children = Array.from(this.parent().children).filter((
v) => v !== this);
if (!selector) {
return children;
}
return children.filter((
v) => v.matches && v.matches(selector));
}
如果我要做这样的事
$("div")
,根据嵌套的不同,我会得到很多副本。我想收缩返回的节点数组,使其不具有类似于jquery实现的重复项。下面是我的版本(1)和jquery版本(2)的屏幕截图示例。我想让他们匹配。
更新2
明白了。这个
Set
解决方案是可行的,但我将它应用到了错误的数组中,所以我没有看到我期望的结果。现在我把它应用到正确的数组中,它工作了,想象一下…:)