为什么我的函数没有从数组中删除所有字符串??javascript
我有这个数组“ 我还有一个函数,它将遍历文本[]并删除字符串。它将只显示数字:为什么我的函数没有从数组中删除所有字符串??javascript,javascript,Javascript,我有这个数组“ 我还有一个函数,它将遍历文本[]并删除字符串。它将只显示数字: var isNumber = function(){ for(var i = 0; i<text.length; i++){ if(isNaN(text[i])){ text.splice(i,1); } } return text; } isNumber(); var isNumber=function(){
var isNumber = function(){
for(var i = 0; i<text.length; i++){
if(isNaN(text[i])){
text.splice(i,1);
}
}
return text;
}
isNumber();
var isNumber=function(){
对于(var i=0;i,在循环数组时,您正在从数组中删除项。请尝试以下操作:
var isNumber = function(){
for(var i = 0; i < text.length; i++){
if(isNaN(text[i])){
text.splice(i, 1);
i--; // go back one step so we won't skip the item after
}
}
return text;
}
var isNumber=function(){
对于(变量i=0;i
在数组中循环时,您正在从数组中删除项目。请尝试以下操作:
var isNumber = function(){
for(var i = 0; i < text.length; i++){
if(isNaN(text[i])){
text.splice(i, 1);
i--; // go back one step so we won't skip the item after
}
}
return text;
}
var isNumber=function(){
对于(变量i=0;i
如果您可以运行ES6,那么下面的操作要简单得多
return text.filter(t => !isNaN(t));
还有Number.isInteger,它比isNaN更受欢迎,如果需要,可以简单地进行多边形填充。
如果您可以运行ES6,那么以下操作要简单得多
return text.filter(t => !isNaN(t));
还有Number.isInteger,它比isNaN更受欢迎,如果需要,可以简单地进行多边形填充。
如果只想筛选字符串,可以将typeof与筛选器一起使用
text = text.filter(function(item){
return typeof item !== 'string';
})
如果只想筛选字符串,可以将typeof与筛选器一起使用
text = text.filter(function(item){
return typeof item !== 'string';
})
可以使用筛选器返回所有为数字的值
示例代码段:
var text=[1,2,“a”,“etf”,5,“9f”,12,“laks”];
函数isNumber(arr){
返回arr.filter(函数(值){
return!isNaN(值)
})
}
log(isNumber(text))
可以使用过滤器返回所有与数字相关的值
示例代码段:
var text=[1,2,“a”,“etf”,5,“9f”,12,“laks”];
函数isNumber(arr){
返回arr.filter(函数(值){
return!isNaN(值)
})
}
console.log(isNumber(text))
或者只使用数组。过滤器
很好,这很快。谢谢,它工作得很好!@pvg这是为了留在OP请求的上下文中。加上过滤器
返回另一个数组。OP试图做的是更改数组本身!@ibrahimmahrir很公平,但问题的上下文也是“海报在这方面相对较新”。Idiomatic答案值得一提。或者只使用数组。filter
很好,这很快。谢谢你,它工作得很好!@pvg这是为了留在OP请求的上下文中。加上filter
返回另一个数组。OP试图做的是更改数组本身!@ibrahimmahrir很公平,但问题的上下文也是“海报是”在这方面相对较新。惯用的答案值得包括在内。