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. 逗號分隔字符串列表
再次,請停止在標題中寫標籤。 –