JavaScript-如何从数组中删除所有字母
我是JavaScript新手,我正在尝试删除数组中的一个数组(若有字母) 例:[“x”,“y”,2],[2,4],[5,3],[6,9],“a”,1]]JavaScript-如何从数组中删除所有字母,javascript,arrays,indexof,arrayofarrays,Javascript,Arrays,Indexof,Arrayofarrays,我是JavaScript新手,我正在尝试删除数组中的一个数组(若有字母) 例:[“x”,“y”,2],[2,4],[5,3],[6,9],“a”,1]] 预期的输出是:[[2,4],[5,3],[6,9] 在您的情况下,我认为问题在于内部循环。因为数据[i][j]将“x”,“y”,2,4,5…并且您不能将索引()应用于数字,因此它会抛出错误 你可以在里面用 var数据=[[“y”,“x”,2],[2,4],[5,3],[6,9]] 设res=data.filter(x=>x.every(x=>
预期的输出是:
[[2,4],[5,3],[6,9]
在您的情况下,我认为问题在于内部循环。因为数据[i][j]
将“x”,“y”,2,4,5…
并且您不能将索引()应用于数字,因此它会抛出错误
你可以在里面用
var数据=[[“y”,“x”,2],[2,4],[5,3],[6,9]]
设res=data.filter(x=>x.every(x=>!isNaN(x));
log(res)
在您的情况下,我认为问题在于内部循环。因为数据[i][j]
将“x”,“y”,2,4,5…
并且您不能将索引()应用于数字,因此它会抛出错误
你可以在里面用
var数据=[[“y”,“x”,2],[2,4],[5,3],[6,9]]
设res=data.filter(x=>x.every(x=>!isNaN(x));
console.log(res)
您的代码无法工作有两个原因:
在内部循环声明中使用的是i
而不是j
您正试图对一个数字执行indexOf()
您期望的输出会留下一些小的不确定性,但这里有一个使用and的解决方案
var数据=[[a”,“b”,“1,2”,“y”,“x”],[2,4],[5,3],[6,9];
var result=data.filter(group=>group.every(item=>!isNaN(item));
控制台日志(结果)代码>您的代码无法工作有两个原因:
在内部循环声明中使用的是i
而不是j
您正试图对一个数字执行indexOf()
您期望的输出会留下一些小的不确定性,但这里有一个使用and的解决方案
var数据=[[a”,“b”,“1,2”,“y”,“x”],[2,4],[5,3],[6,9];
var result=data.filter(group=>group.every(item=>!isNaN(item));
控制台日志(结果)代码>若要使用单循环获得预期结果,请使用filter和Math.max,若数组包含字符串,则它将为Math.max返回NaN
var数据=[[“x”,“y”,2],[2,4],[5,3],[6,9],“a”,1];
log(data.filter(v=>!isNaN(Math.max.apply(Math,v)))代码>若要使用单循环获得预期结果,请使用filter和Math.max,若数组包含字符串,则它将为Math.max返回NaN
var数据=[[“x”,“y”,2],[2,4],[5,3],[6,9],“a”,1];
log(data.filter(v=>!isNaN(Math.max.apply(Math,v)))代码>预期输出?第一个数组(现在为空)会被删除,还是会在结果中保留一个空数组?请为您的示例数据
提供预期的输出。切勿在内部
和外部
循环中使用相同的索引我看到这两个问题:您使用的是I
,而您可能打算在内部循环声明中使用j
。第二,你不能对一个数字进行索引,所以一旦你的数据到达2
,它就会失败。如果给定的数组是[[“y”,“x”,2],[2,4],[5,3],[6,9]]
预期的输出怎么办?第一个数组(现在是空的)会被删除,还是会在结果中保留一个空数组?请为您的示例数据
提供预期的输出。切勿在内部
和外部
循环中使用相同的索引我看到这两个问题:您使用的是I
,而您可能打算在内部循环声明中使用j
。第二,你不能对一个数字进行索引,所以你的数据一旦到达2
,就会失败。如果给定的数组是[[“y”,“x”,2],[2,4],[5,3],[6,9]
@code-Maniac你是对的,OP问题不匹配,因为1)他的预期输出删除了元素2)他正在使用类似[\p{IsLatin}\s]的东西+
他没有告诉你这就是为什么它是一个旁注,伙计:)不管怎样,只是清理我的评论,因为OP已经提供了更多的澄清,所以他们现在是irrelevant@Code疯子你是对的OP问题不匹配,因为1)他的预期输出删除了元素2)他使用了类似[\p{IsLatin}的东西\s] +
他没有告诉你这就是为什么它是一个旁注,伙计:)不管怎样,只是清理我的评论,因为OP已经提供了更多的澄清,所以它们现在无关紧要了,非常感谢。你帮了大忙。@jordirigau谢谢,就算你更新了,reduce()
也没必要。我正在更新我的答案,但是看到Maheer领先了一步——考虑他的解决方案吧!非常感谢你。你帮了大忙。@jordirigau谢谢,就算你更新了,reduce()
也没必要。我正在更新我的答案,但是看到Maheer领先了一步——考虑他的解决方案吧!