javascript - jQuery 2.1 | jQuery 2.1删除重复子串的源子串

标签 javascript jquery

我希望保留逗号分隔字符串的以下重复子字符串,同时删除前面的重复子字符串。

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/

相关文章:

javascript - 当使用 $index 跟踪时,ng-init 不会第二次调用

javascript - 猜颜色游戏。猜测正确后如何停止循环

javascript - EmberJS - 无法从组件获取 "service' 的属性

javascript - 将自定义消息添加到 knockout 所需的验证

javascript - 为什么我在文本区域中输入内容时收到替换函数错误

javascript - 简单的 jquery .post 不返回数据

JavaScript Date.parse 在 Mozilla 浏览器中返回 NaN

IE9 中的 JQuery 快速搜索

javascript - 我如何判断滚动条是否已到达帖子内容的末尾?

javascript - 标签文本框的制作方法