从数组中删除字符串
我有一个包含数字和字符串的数组,我想从数组中删除所有字符串。 这里是数组:从数组中删除字符串
var numbOnly = [1, 3, "a", 7];
在这种情况下,我想删除a
从numbOnly
(结果numbOnly = [1, 3, 7]
)。
谢谢。
你可以使用这个:
var numbOnly = [1, 3, "a", 7];
var newArr = numbOnly.filter(isFinite) // [1, 3, 7]
上述作品真的很好,如果你没有像字符串数组中"1"
。为了克服这一点,你可以过滤数组是这样的:
newArr = numbOnly.filter(function(x){
return typeof x == "number";
});
我想要'.filter(isFinite)'。 'Number'会过滤掉零。 – elclanrs 2014-10-04 07:30:23
@elclanrs谢谢! – 2014-10-04 07:32:42
可以使用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
将只保留类型为数字的项目。
遍历数组,并使用检查的dataType'typeof' – Praveen 2014-10-04 07:10:57
我想你的意思'“一”''不A'?或者是一个包含字符串的变量? – 2014-10-04 07:18:05
是的,我的意思是“a”。 – 2014-10-04 07:19:16