Javascript 不删除某些字符
我正在研究一些codewars问题,我想到了这个“消除噪音”的方法,我想关键是避开反斜杠\并使用替换方法,这很简单。但我不想使用替换,相反,我发现自己在尝试使用拼接方法删除项目时遇到了麻烦 有趣的是,当我在Chrome开发工具中调试时,我一步一步地看到项目被删除,但是控制台.log会吐出一些有问题的字符($/·|ªl)来删除,最后返回并与这些字符连接。为什么呢Javascript 不删除某些字符,javascript,Javascript,我正在研究一些codewars问题,我想到了这个“消除噪音”的方法,我想关键是避开反斜杠\并使用替换方法,这很简单。但我不想使用替换,相反,我发现自己在尝试使用拼接方法删除项目时遇到了麻烦 有趣的是,当我在Chrome开发工具中调试时,我一步一步地看到项目被删除,但是控制台.log会吐出一些有问题的字符($/·|ªl)来删除,最后返回并与这些字符连接。为什么呢 功能删除(str){ var base=“%$&/#·@|º\ª”; var arr=str.split(“”); 对于(变量i=0;
功能删除(str){
var base=“%$&/#·@|º\ª”;
var arr=str.split(“”);
对于(变量i=0;i removeNoise('he%$&/#·@º\ª\llo');/=>$/|ªllo
您正在使用splice
从数组中删除条目,但随后您将为下一个循环递增i
。如果从10个条目的数组中删除索引5处的条目,那么索引6处的条目现在在索引5处(现在是9个条目的数组),因此不希望增加索引
解决方案是使用while
循环,并且仅在不拼接的情况下更新i
:
功能删除(str){
var base=“%$&/#·@|º\ª”;
var arr=str.split(“”);
var i=0;
而(i 文件.正文.附件(pre)代码>您正在从数组中删除字符。这将使索引器变量i
与要测试的字符不同步。简单的修复方法是从数组的末尾开始,一直到数组的开头
将for循环更改为此
for(var i = arr.length -; i <= 0; i--) {
for(var i=arr.length-;i$/·|ªllo
请注意:如果您想消除噪音,请记住,在99/100的情况下,定义您想要在字符串中删除的内容更容易、更可靠,而不是您想要从字符串中删除的内容。如果下面的答案回答了您的问题,按照这种方式,您会“接受”通过点击旁边的复选标记来获得答案。非常感谢。关于阅读书籍的内容太多了,而不是申请。我记得当我读N.Zakas的书时,读到这是一个常见的问题,我直接掉进了陷阱。再次感谢你。