如何从数组中删除

时间:2014-06-02 19:06:44

标签: 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);

为什么是警报(文字);没被执行? Splice有问题,请帮帮我。

3 个答案:

答案 0 :(得分:3)

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

text = text.split('');
text.splice(i,1);
text = text.join('');

而且,作为一个数组,你不能使用方法charAt但

if(text[i] < 42 || text[i] > 57)

谈到实现这项任务的最佳方式是什么,我宁愿建议以更好的方式看待不同的解决方案,性能明智。

在这里你可以找到一个基准测试,你可以看到如何使用字符串方法 slice 更高效。

http://jsperf.com/split-or-slice-for-string-splice/2

答案 1 :(得分:0)

您可能正在寻找.slice()方法。

text.slice(i,1);

答案 2 :(得分:-4)

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

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);