gpt4 book ai didi

javascript - 将重复项放在公共(public)元素下

转载 作者:行者123 更新时间:2023-12-02 13:50:13 25 4
gpt4 key购买 nike

我有以下代码。

<ul id="listOne">
<li class="columnItem>John</li>
<li class="columnItem>James</li>
<li class="columnItem>Mary</li>
</ul>

<ul id="listTwo">
<li class="columnItem>John</li>
<li class="columnItem>Mark</li>
<li class="columnItem>Mary</li>
</ul>

我想从两个列表中删除重复的列表项,并将其放置在另一个列表下作为“CommonList”。类似的东西

<ul id="CommmonList">
<li class="columnItem>John</li>
<li class="columnItem>Mary</li>
</ul>
<ul id="listOne">
<li class="columnItem>James</li>
</ul>

<ul id="listTwo">
<li class="columnItem>Mark</li>
</ul>

最佳答案

您可以使用ES6 Sets来做到这一点.

这是你可以做的。

$(() => {

let names = [];
let nameSet = new Set();

$("li.columnItem").each((idx, ele) => {
nameSet.add($(ele).html())
});

var $common = $("<ul>").addClass("commmonList");
nameSet.forEach((name) => {
if ($("li:contains(" + name + ")").length > 1) {
$("li:contains(" + name + ")").remove();
$("<li>").addClass("columnItem").html(name).appendTo($common);
}
});
$common.appendTo($("div"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<ul id="listOne">
<li class="columnItem">John</li>
<li class="columnItem">James</li>
<li class="columnItem">Mary</li>
</ul>

<ul id="listTwo">
<li class="columnItem">John</li>
<li class="columnItem">Mark</li>
<li class="columnItem">Mary</li>
</ul>
</div>

关于javascript - 将重复项放在公共(public)元素下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41048125/

25 4 0