删除每个函数中的重复项
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>
【讨论】:
以上是关于删除每个函数中的重复项的主要内容,如果未能解决你的问题,请参考以下文章