Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从数组中删除_Javascript - Fatal编程技术网

Javascript 如何从数组中删除

Javascript 如何从数组中删除,javascript,Javascript,我知道有类似的线程,但我已经尝试了你在那里提出的建议,但仍然无法解决我的问题 for(var i = text.length-1; i>=0; i--) { if(text.charCodeAt(i) < 42 || text.charCodeAt(i) > 57) { text.splice(i,1); } } alert(text); 为什么是文本;没有执行?拼接有问题,请帮助

我知道有类似的线程,但我已经尝试了你在那里提出的建议,但仍然无法解决我的问题

for(var i = text.length-1; i>=0; i--)
    {
        if(text.charCodeAt(i) < 42 || text.charCodeAt(i) > 57)
        {
            text.splice(i,1);
        }
    }
    alert(text);

为什么是文本;没有执行?拼接有问题,请帮助我。

未执行警报,因为您在脚本开头没有声明它

var text = [];

for(var i = text.length-1; i>=0; i--)
    {
        if(text.charCodeAt(i) < 42 || text.charCodeAt(i) > 57)
        {
            text.splice(i,1);
        }
    }
    alert(text);

这是因为javascript中的字符串没有拼接方法。您需要在数组中转换它

text = text.split('');
text.splice(i,1);
text = text.join('');
而且,作为一个数组,不能使用charAt方法,而是

if(text[i] < 42 || text[i] > 57)
谈到实现这项任务的最佳方式,我更愿意建议从性能角度看一看比这更好的不同解决方案

在这里,您可以找到一个基准测试,在这里您可以看到如何使用string方法slice更高效


您可能正在寻找.slice方法

text.slice(i,1);

@AbdennourToumi Java!=JavaScript@AbdennourToumi语言可能混淆。。爪哇!=JavaScriptoh。对您是对的,创建一个JSFIDDLE.NET并在控制台中查看您正在使用的字符串。字符串没有拼接方法。文本显然是一个字符串,而不是一个空数组。将其转换为数组是可行的,但听起来有点过头了。函数string,index,howMany{return string.substring0,index+string.substringindex+howMany;}是的,我可以是另一个解决方案。我只是回答了他的问题,想知道为什么没有执行警报。这是因为for循环中的javascript错误。展望未来,有很多不同的解决方案来解决这一特殊任务。非常感谢。