我希望保留逗号分隔字符串的以下重复子字符串,同时删除前面的重复子字符串。
1- 附加重复之前字符串的初始状态:
aaa、bbb、ccc、ddd、eee
2- bbb 动态附加到字符串:
aaa、bbb、ccc、ddd、eee、bbb
3- 现在必须删除前面的 bbb:
aaa、ccc、ddd、eee、bbb
以下函数或任何与此相关的函数如何重现我所寻求的内容?
function unique(list) {
var result = [];
$.each(list, function(i, e) {
if ($.inArray(e, result) == -1) {
result.push(e);
}
});
return result;
}
最佳答案
快速而简单的方法是反转数组,使用重复删除功能,然后将其反转回来:
function unique(list) {
var result = [];
$.each(list, function(i, e) {
if ($.inArray(e, result) == -1) {
result.push(e);
}
});
return result;
}
var arr = ["aaa", "bbb", "ccc", "ddd", "eee", "bbb"];
console.log(unique(arr.reverse()).reverse());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
可能有一些方法可以实现更好的性能,但对于相对较小的数组,这应该没问题。
您还提到这是一个字符串(尽管您的函数适用于数组)。如果是字符串,则需要使用 split
将其拆分为数组,然后在去重后使用 join
将其恢复为字符串。
关于javascript - jQuery 2.1 | jQuery 2.1删除重复子串的源子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29396207/