从逗号分隔的字符串中删除重复项

时间:2012-07-10 16:06:59

标签: javascript jquery csv unique comma

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

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

8 个答案:

答案 0 :(得分:2)

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

如果您愿意尝试使用其他库,那么优秀的underscorejs会包含一个“uniq”方法,可以完成您所需要的工作。

答案 1 :(得分:2)

这是一个简单的例子。

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);​

答案 2 :(得分:1)

从这篇文章 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);
  });

答案 3 :(得分:1)

答案很好,库underscore.js

还有_.uniq()

答案 4 :(得分: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;
           });
}

答案 5 :(得分:0)

var numbersString = "1,2,3,4,5,6";
var numbersArray = numbers.split(',');

现在只需在另一个数组中插入numbersArray

的内容即可

答案 6 :(得分:0)

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

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);

答案 7 :(得分:0)

您可以在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();

希望这会有所帮助。