从数组中删除字符串

时间:2014-10-04 07:09:26

标签: javascript arrays

我有一个包含数字和字符串的数组,我想从数组中删除所有字符串。 这是数组:

var numbOnly = [1, 3, "a", 7];

在这种情况下,我想从a中删除numbOnly结果 numbOnly = [1, 3, 7])。

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用Array.prototype.filter功能和Object.prototype.toString这样的

var array = [1, 3, 'a', 7];

var numbOnly = array.filter(function(currentItem) {
    return Object.prototype.toString.call(currentItem).indexOf('Number')!==-1;
});

console.log(numbOnly);
# [ 1, 3, 7 ]

或者,您可以使用typeof来检查类似

的类型
return typeof currentItem === 'number';

仅当传递给它的函数返回当前项的filter时,true函数才会在结果列表中保留当前元素。在这种情况下,我们正在检查当前项目的类型是否为数字。因此,filter将仅保留结果中类型为数字的项目。

答案 1 :(得分:3)

你可以使用它:

var numbOnly = [1, 3, "a", 7];
var newArr = numbOnly.filter(isFinite)  // [1, 3, 7]

如果您在数组中没有"1"之类的字符串,则上述工作非常有效。要解决这个问题,您可以像这样过滤数组:

newArr = numbOnly.filter(function(x){
   return typeof x == "number"; 
});