在javascript跨浏览器中过滤数组

在javascript跨浏览器中过滤数组,javascript,arrays,Javascript,Arrays,我有个小问题。我搜索了一下,但没有得到帮助来解决它。我有一个数组,例如var oldArr=['one','two','3']和我想从中创建一个新数组,但只能使用字符串值,为此,我目前正在使用array.filter方法,它正在工作,但有人说它在所有浏览器中都不受支持,所以我的问题是如何使用跨浏览器解决方案过滤我的数组 这是我当前的代码 var oldArr=['one','two','3']; newArr=oldArr.filter(function(a){ return !a.match(

我有个小问题。我搜索了一下,但没有得到帮助来解决它。我有一个数组,例如
var oldArr=['one','two','3']
和我想从中创建一个新数组,但只能使用字符串值,为此,我目前正在
使用array.filter
方法,它正在工作,但有人说它在所有浏览器中都不受支持,所以我的问题是如何使用跨浏览器解决方案过滤我的数组

这是我当前的代码

var oldArr=['one','two','3'];
newArr=oldArr.filter(function(a){
return !a.match(/\d/);
});
alert(newArr);
提前感谢您的努力。

也许您想要这个

if (!Array.prototype.filter) {
    Array.prototype.filter = function(fun /*, thisp*/) {
        var len = this.length >>> 0;
        if (typeof fun != "function") {
            throw new TypeError();
        }

        var res = [];
        var thisp = arguments[1]; 
        for (var i = 0; i < len; i++) {
            if (i in this) {
                var val = this[i];
                if (fun.call(thisp, val, i, this)) {
                    res.push(val);
                }
            }
        }

        return res;
    };
}

var oldArr = ['one','two','3'];
    newArr=oldArr.filter(function(a){
    return !a.match(/\d/);
});
console.log(newArr);
if(!Array.prototype.filter){
Array.prototype.filter=函数(fun/*,thisp*/){
var len=this.length>>>0;
如果(乐趣的类型!=“功能”){
抛出新的TypeError();
}
var-res=[];
var thisp=参数[1];
对于(变量i=0;i
参考文献:


这些看起来都像字符串。你的意思是只获取不作为数字解析的字符串?请看一下@AbuRasel-had-not=downvoteSorry我的错误,我只想获取数字。@Derek按照你的逻辑,几乎每个问题都需要DV:)
var oldArr = ['one', 'two', '3'];
var newArr = [];
for (var i = 0; i < oldArr.length; i++) {
    if (isNaN(oldArr[i])) {
        newArr.push(oldArr[i]);
    }
}
if (!isNaN(oldArr[i])) {