如何使用 jquery/javascript 从逗号分隔的整数字符串中删除重复项?
我的字符串是:1,2,2,4,2,4,3,2,3,1,5,5,5,1,1,2
对于一种方法,不需要从头开始编写功能或使用一些otherjs库,请查看duck-punching-with-jquery。 (查找“示例 2:$.unique() 增强”)
如果您愿意尝试其他库,优秀的 underscorejs 包含一个“uniq”方法,它可以满足您的需求。
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;
});
}
这是一个简单的例子。
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);
摘自这篇文章 从 JavaScript 数组中删除重复项
var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
var uniqueNames = [];
$.each(names, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
如果它们只是整数,你可以有类似的东西:
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);
您可以在 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();
希望这有帮助。
这是一种更优雅的方法,它将数组返回为逗号分隔的字符串:
function removeDuplicates(str) {
const strArr = str.split(",");
const uniqueArray = [...new Set(strArr)];
return uniqueArray.join();
}
代码片段:
function removeDuplicates(str) {
const strArr = str.split(",");
const uniqueArray = [...new Set(strArr)];
return uniqueArray.join();
}
var myStr = '1,2,3,3,3,4,4,5';
console.log(removeDuplicates(myStr));
var numbersString = "1,2,3,4,5,6";
var numbersArray = numbers.split(',');
现在只需在另一个数组中插入并检查
numbersArray
的内容