删除每个函数中的重复项

Posted

技术标签:

【中文标题】删除每个函数中的重复项【英文标题】:Delete duplicate Item in Each function 【发布时间】:2021-12-13 10:53:19 【问题描述】:

我想存档,我删除了每个中的所有重复项。

所以我去一个带有项目的 div:

<div class="each">
    <div>Test2</div>
    <div>Test</div>
    <div>Test</div>
</div>
<div class="each">
    <div>Test2</div>
    <div>Test</div>
    <div>Test</div>
</div>

到目前为止,我的 Jquery:

$('.dropPlace').each(function(index)
    console.log($(this).text());
);

所以我想检查 每个 div 中是否存在两个重复的文本。并且只在div 中删除了重复的一次。

所以结果会是这样的:

<div class="each">
    <div>Test2</div>
</div>
<div class="each">
    <div>Test2</div>
</div>

【问题讨论】:

好吧,到目前为止,您的代码在所有 .dropPlace 元素中都没有 each。您可能希望为每个 .each 创建一个 each。 因此,如果存在重复,您要删除所有副本,还是只删除一个以外的多余副本? @connexo 是的,这就是我要存档的内容 @connexo 如前所述,如果超过 2 个,则仅删除其中 1 个(“仅删除重复一次”),例如“1,1,1”=>“1,1” - 但示例删除了所有条目,而不仅仅是重复项,例如 "1,1,1" => "" 问题:A 或 B:答案:是的 - 有帮助。 删除所有仅多余的 - 【参考方案1】:

以下内容肯定可以优化,但它会给出您要求的结果:

<div class="each">
    <div>Test2</div>
</div>
<div class="each">
    <div>Test2</div>
</div>

$('.each').each(function() 
  const textAr = [];
  let parent = $(this);
  parent.children('div').each(function() 
    let _this = $(this), elText = _this.text();
    if(textAr.includes(elText))   
      parent.children('div').each(function() 
        let _child = $(this);
        if(_child.text() == elText)
          _child.remove();
        
      )
     
    else textAr.push(elText)    
  );
);
.each 
  margin-bottom: 1em;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="each">
    <div>Test2</div>
    <div>Test</div>
    <div>Test</div>
</div>
<div class="each">
    <div>Test2</div>
    <div>Test</div>
    <div>Test</div>
</div>

【讨论】:

这不是您要找的吗?【参考方案2】:

这是一个工作演示。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function () 
    var map = ;
    $("#remove").click(function () 
        // use an object as map
        var map = ;
        $(".dropPlace").each(function () 
            var value = $(this).text();
            if (map[value] == null) 
                map[value] = true;
             else 
                $(this).remove();
            
        );
    );
);
</script>
</head>
<body>

<div class="each">
    <div class="dropPlace">Test2</div>
    <div class="dropPlace">Test</div>
    <div class="dropPlace">Test</div>
</div>
<div class="each">
    <div class="dropPlace">Test2</div>
    <div class="dropPlace">Test</div>
    <div class="dropPlace">Test</div>
</div>
<button id="remove">remove</button
</body>
</html>

【讨论】:

以上是关于删除每个函数中的重复项的主要内容,如果未能解决你的问题,请参考以下文章

从 mongodb 数组中的所有重复项中拉出一个元素

如何获取mysql重复项中的最后一条数据

excel怎么样自动选择重复项中的唯一值

删除每个函数中的重复项

可以使Maven构建包含依赖项中的.class文件[重复]

使用正则表达式从python中的列表项中删除子字符串