7
A
回答
13
假设你的初始值是一个字符串(你没有说)。
var listOfNumbers = '3434,346,1,6,46', add = 34332;
var numbers = listOfNumbers.split(',');
if(numbers.indexOf(add)!=-1) {
numbers.push(add);
}
listOfNumbers = numbers.join(',');
基本上我将字符串转换成一个数组,检查使用的indexOf值的存在(),增加仅当它不存在。
然后我使用连接将该值转换回字符串。
2
如果这是一个字符串,可以使用.split()
和.join()
功能,以及.push()
:
var data = '3434,346,1,6,46';
var arr = data.split(',');
var add = newInt;
arr.push(newInt);
data = arr.join(',');
如果这已经是一个数组,你可以使用.push()
:
var data = [3434,346,1,6,46];
var add = newInt;
data.push(add);
更新:没有读最后一行检查重复项,我能想到的最佳方法是循环:
var data = [3434,346,1,6,46];
var add = newInt;
var exists = false;
for (var i = 0; i < input.length; i++) {
if (data[i] == add) {
exists = true;
break;
}
}
if (!exists) {
data.push(add);
// then you would join if you wanted a string
}
2
您还可以使用正则表达式:
function appendConditional(s, n) {
var re = new RegExp('(^|\\b)' + n + '(\\b|$)');
if (!re.test(s)) {
return s + (s.length? ',' : '') + n;
}
return s;
}
var nums = '3434,346,1,6,46'
alert(appendConditional(nums, '12')); // '3434,346,1,6,46,12'
alert(appendConditional(nums, '6')); // '3434,346,1,6,46'
哦,因为一些真正喜欢的三元运营商和obfustically短代码:
function appendConditional(s, n) {
var re = new RegExp('(^|\\b)' + n + '(\\b|$)');
return s + (re.test(s)? '' : (''+s? ',':'') + n);
}
没有jQuery的“垫片”或跨浏览器的问题。 :-)
相关问题
- 1. PHP MYSQL - 搜索逗号,逗号分隔列表分隔列表
- 2. 逗号分隔列表
- 3. 逗号分隔的列表
- 4. @synthesize逗号分隔列表
- 5. 如何加入逗号分隔列表?
- 6. 以逗号分隔数据
- 7. 数组项的逗号分隔列表
- 8. 将INT列加入以逗号分隔的INT列表
- 9. 正则表达式从逗号分隔号分隔的列表
- 10. 如何显示以逗号或分号分隔的值列表
- 11. 以逗号分隔,制表符分隔格式组合数据
- 12. 转换被逗号分隔值,以逗号分隔字符串
- 13. 以逗号分隔的分隔值
- 14. 阵列以逗号分隔字符串
- 15. 以逗号分隔的data.frame的列名
- 16. SQL逗号分隔列表中的分析函数列表
- 17. Javascript以逗号分隔
- 18. 转换地址的列表,以逗号分隔列表
- 19. 以逗号分隔的值列表为int列表
- 20. 逗号分隔值列出
- 21. 用逗号分隔的列
- 22. SQL数据以逗号分隔的列表返回
- 23. 多个查询参数值,以逗号分隔列表
- 24. 以逗号分隔的字符串整数列表
- 25. HTML数据以逗号分隔值到python列表
- 26. 转换逗号分隔的字符串列表,以整数
- 27. 逗号分隔列表使用合并
- 28. 逗号分隔视图列表
- 29. TSQL XML逗号分隔列表
- 30. 逗号分隔字符串列表
再次,请停止在标题中写标签。 –