回答
下面是一些测试jslint编代码,做你问什么。
if (!String.prototype.removeListItem) {
String.prototype.removeListItem = function(value, delimiter) {
delimiter = delimiter || ',';
value = value.toString();
var arr = this.split(delimiter),
index = arr.indexOf(value);
while (index >= 0) {
arr.splice(index, 1);
index = arr.indexOf(value);
}
return arr.join(delimiter);
};
}
alert('10,20,30,120,200'.removeListItem(20));
// yields '10,30,120,200'
但是,我质疑你为什么要这样做。数组应该存储在数组对象中,而不是字符串文字中。如果您需要显示列表,则在显示时转换为分隔列表。如果你的输入是一个字符串,那么在输入时分割它,并把它作为一个数组保存。我真的坚信这是你的最佳实践,从长远来看,维护代码更容易理解。
埃里克,感谢代码,特别感谢你的劝告。逗号分隔列表是一个数据元素,可以有多个值。 – 2011-06-07 04:01:19
分割字符串给你一个数组。一旦你在数组中,删除你需要删除的元素。然后再输出字符串。
或者你可以用''找到并替换'20'。
您的'替换'建议需要一些工作。 – ErikE 2011-06-06 21:47:53
我冲断,但该溶液的组成部件可能会是:
String#split
,其将字符串转换成基于一个定界符的阵列。Array#indexOf
,它在数组中找到一个条目(一些旧的浏览器可能没有它;在那些上,你必须做一个循环)。Array#splice
,其中(除其他外)从数组中删除条目。Array#join
,它使用给定的分隔符将数组连接成一个字符串。
...可能有些东西混合在那里来处理流浪的空间,如果它们是可能的话。
或者当然,您可以在任一端输入逗号,然后搜索“,20”,使用String#indexOf
并使用String#substring
来获取前面和后面的位。但那有什么好玩的。 ;-)(看起来有点脆弱。)
var myArray = myList.split(',');
myArray.splice(1,1); // Remove one element at index 1, which is 20 in your example
myList = myArray.toString();
几个人差不多有replace
工作。
var lists = ['20', '10,20', '20,30', '10,20,30', '120,200,2020'];
for (var i=0; i<lists.length; ++i) {
lists[i] = lists[i].replace(/(^|,)20,|(^|,)20$/,'$1');
}
结果:
["", "10", "30", "10,30", "120,200,2020"]
爱得RegEx – 2011-06-07 04:01:57
- 1. 从字符串列表中删除元素?
- 2. 如何从列表中删除一个字符串的元素
- 3. python从字符串列表中删除元素
- 4. 删除字符串元素
- 5. 删除字符串元素
- 6. 删除字符串元素
- 7. 删除元素,并从列表中删除下列元素
- 8. 从列表中删除字符串
- 9. 删除字符串列表中的元素
- 10. 用python删除列表中的特定字符串元素?
- 11. 作为python列表元素的字符串操作
- 12. 从列表元素中删除项目?
- 13. 从元组列表中删除元素
- 14. 从Node.js中列表元素的字符串化JSON的redis列表中删除元素
- 15. 从R列表中删除元素
- 16. 如何从JavaScript中的字符串列表中删除元音
- 17. 在列表元素中搜索子字符串删除元素(Python)
- 18. python-从列表中删除元素
- 19. 如何从字符向量列表中删除元素?
- 20. 使用jQuery从无序列表中的每个元素中删除字符串?
- 21. 从字符串中删除字符串列表 - C#.NET
- 22. python从字符串列表中删除子字符串
- 23. 从字符串列表中删除子字符串
- 24. 如何从字典中的列表中删除列表元素?
- 25. 从标准列表中删除元素
- 26. 从内核列表中删除元素
- 27. 从链接列表中删除元素
- 28. 从C++列表中删除元素
- 29. 从列表中删除当前元素
- 30. 从通用列表中删除元素
保证在列表中最多只能删除一次的值是否被删除? – outis 2011-06-06 21:40:45
我会重构它,所以它是“removeIntValueFromString(myList);”而不是向字符串对象添加方法。 – rob 2011-06-06 22:08:12