我有一个包含数字和字符串的数组,我想从数组中删除所有字符串。 这是数组:
var numbOnly = [1, 3, "a", 7];
在这种情况下,我想从a
中删除numbOnly
(结果 numbOnly = [1, 3, 7]
)。
感谢。
答案 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";
});