JavaScript-如何从数组中删除所有字母

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=>

我是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=>!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领先了一步——考虑他的解决方案吧!