Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript数组中删除重复项_Javascript_Arrays - Fatal编程技术网

如何从javascript数组中删除重复项

如何从javascript数组中删除重复项,javascript,arrays,Javascript,Arrays,以下两行显示在页面的不同位置: Line 1: <span class="specLink"><a title="Part A" href="/page1.aspx">Part A</a></span> Line 2: <span class="specLink"><a title="Part A" href="/page1.aspx">Part A</a></span> 因此,对于Javascri

以下两行显示在页面的不同位置:

Line 1: <span class="specLink"><a title="Part A" href="/page1.aspx">Part A</a></span>
Line 2: <span class="specLink"><a title="Part A" href="/page1.aspx">Part A</a></span>
因此,对于Javascript,我现在有这样一行代码:

<div class="addSpecialties">
    <a title="Part A" href="/page1.aspx">Part A</a>
    <a title="Part A" href="/page1.aspx">Part A</a>
</div>

但是,我想展示的是(仅其中一个,因为它们是重复的):



如何修改代码,使其只需出现一次
.specLink a

如果您熟悉lodash,uniq函数听起来就像您正在寻找的一样

_.uniq([2, 1, 2]);
// → [2, 1]

// isSorted = true
_.uniq([1, 1, 2], true);
// → [1, 2]

如果您熟悉lodash,uniq功能听起来就像您正在寻找的一样

_.uniq([2, 1, 2]);
// → [2, 1]

// isSorted = true
_.uniq([1, 1, 2], true);
// → [1, 2]

您需要返回筛选结果:

function removeDuplicateElements(array) {
        return array.filter(function (item, index) {
            return array.indexOf(item) === index;
        });
    }

您需要返回筛选结果:

function removeDuplicateElements(array) {
        return array.filter(function (item, index) {
            return array.indexOf(item) === index;
        });
    }
该问题包含从数组中删除重复项的完整方法列表。例如,一个简单但天真的方法是

function removeDuplicateElements(array) {
  return array.filter(function (item, index) {
    return array.indexOf(item) === index;
  });
}
但是,它对您不起作用。该函数不会删除任何元素

这是因为对象是通过引用进行比较的,即使元素看起来相同,它们实际上也是不同的实体。所以上面的代码不会检测到任何重复

您想要的是对象之间某种“松散”的相等性

但既然你只是一个孩子,有一个完美的解决方案:

该问题包含从数组中删除重复项的完整方法列表。例如,一个简单但天真的方法是

function removeDuplicateElements(array) {
  return array.filter(function (item, index) {
    return array.indexOf(item) === index;
  });
}
但是,它对您不起作用。该函数不会删除任何元素

这是因为对象是通过引用进行比较的,即使元素看起来相同,它们实际上也是不同的实体。所以上面的代码不会检测到任何重复

您想要的是对象之间某种“松散”的相等性

但既然你只是一个孩子,有一个完美的解决方案:


必须返回“true”以保留元素,返回“false”以删除元素。“RemovedUpplicateElements”函数返回false,因此在执行时,它会从数组中删除每个元素。按照@gnerkus的建议,修改RemovedUpplicateElements()函数以返回以下内容:

return array.indexOf(item) === index;

必须返回“true”以保留元素,返回“false”以删除元素。“RemovedUpplicateElements”函数返回false,因此在执行时,它会从数组中删除每个元素。按照@gnerkus的建议,修改RemovedUpplicateElements()函数以返回以下内容:

return array.indexOf(item) === index;

这是一个从div中删除重复的
a
元素的函数

function removeDuplicateLinks() {
    var div                 = document.getElementsByClassName('addSpecialties')[0];
    var specialities        =  div.children;
    var uniqueSpecialities  = [];

    for (var i = 0; i < specialities.length; i++) {
        var elem = specialities[i];

        if (elem.nodeName === 'A') {
            var title = specialities[i].title;

            if (uniqueSpecialities.indexOf(title) === -1) {
                uniqueSpecialities.push(title);
            } else {
                div.removeChild(elem);
                i--;
            }
        }
    }
}
<代码>删除重复链接
这里有一个函数,用于从div中删除重复的
a
元素

function removeDuplicateLinks() {
    var div                 = document.getElementsByClassName('addSpecialties')[0];
    var specialities        =  div.children;
    var uniqueSpecialities  = [];

    for (var i = 0; i < specialities.length; i++) {
        var elem = specialities[i];

        if (elem.nodeName === 'A') {
            var title = specialities[i].title;

            if (uniqueSpecialities.indexOf(title) === -1) {
                uniqueSpecialities.push(title);
            } else {
                div.removeChild(elem);
                i--;
            }
        }
    }
}
删除重复链接

它正在删除所有链接:/。我将发布一个提琴。它正在删除所有链接:/。我会贴一把小提琴。哇。。。在我写答案的时候,你修改了你的问题。是的,对不起,我认为大部分内容都不需要。所以我修剪了它。哇。。。在我写答案的时候,你修改了你的问题。是的,对不起,我认为大部分内容都不需要。所以我修剪了它。