【问题标题】:Remove Duplicates From Comma Delimited String从逗号分隔的字符串中删除重复项
【发布时间】:2012-07-10 16:06:58
【问题描述】:

如何使用 jquery/javascript 从逗号分隔的整数字符串中删除重复项?

我的字符串是:1,2,2,4,2,4,3,2,3,1,5,5,5,1,1,2

【问题讨论】:

标签: javascript jquery csv unique comma


【解决方案1】:
function spit(){
           var answer = ("1,2,2,4,2,4,3,2,3,1,5,5,5,1,1,2").split(',').filter(function(item, pos,self) {
              return self.indexOf(item) == pos;
           });
}

【讨论】:

    【解决方案2】:

    对于一种不需要从头开始编写功能或使用一些其他 js 库的方法,请查看duck-punching-with-jquery。 (查找“示例 2:$.unique() 增强”)

    如果您愿意尝试其他库,出色的 underscorejs 包含一个 'uniq' 方法,可以满足您的需求。

    【讨论】:

      【解决方案3】:

      这是一个简单的例子。

      var str1 = "a,b,c,a,d,e,b";
      var characters = str1.split(",");
      var distinctCharacters = [];
      jQuery.each(characters, function(index, c) {
      if (jQuery.inArray(c, distinctCharacters) > -1) {
              // do nothing
              alert("already exists " + c);
          } else {
              distinctCharacters.push(c);
          }
      });
      alert(distinctCharacters);​
      

      【讨论】:

        【解决方案4】:

        来自这篇文章 Remove Duplicates from JavaScript Array

        var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
        var uniqueNames = [];
        $.each(names, function(i, el){
         if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
          });
        

        【讨论】:

          【解决方案5】:

          很好的答案,还有来自图书馆的_.uniq()underscore.js

          【讨论】:

            【解决方案6】:
            var numbersString = "1,2,3,4,5,6";
            var numbersArray = numbers.split(',');
            

            现在只需在另一个数组中插入 numbersArray 的内容并检查

            【讨论】:

              【解决方案7】:

              如果它们只是整数,你可以有类似的东西:

              var array = "1,2,2,4,2,4,3,2,3,1,5,5,5,1,1,2".split(",");
              
              array.sort(function(a, b) { return a - b });
              
              var uniqueArray = [array[0]];
              
              for (var i = 1; i < array.length; i++) {
                  if (array[i - 1] !== array[i])
                      uniqueArray.push(array[i]);
              }
              
              console.log(uniqueArray);
              

              【讨论】:

                【解决方案8】:

                你可以在你的javascript中创建一个函数,如下所示:

                Array.prototype.removeDuplicates = function () {
                                return this.filter(function (item, index, self) {
                                    return self.indexOf(item) == index;
                                });
                            };
                

                然后将.removeDuplicates()添加到使用分隔符拆分后要从中删除重复项的字段,例如:

                var item = $("#inInputTextbox").val().split(",").removeDuplicates();
                

                在你的情况下,如果我理解正确,它可能只是:

                var item = [a,b,c,d,d,d,c,b,a].split(",").removeDuplicates();
                

                希望这会有所帮助。

                【讨论】:

                  猜你喜欢
                  • 2018-08-27
                  • 2012-01-30
                  • 1970-01-01
                  • 2023-03-10
                  • 2016-12-23
                  • 2016-05-21
                  • 2021-12-21
                  • 1970-01-01
                  相关资源
                  最近更新 更多