繁体   English   中英

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

[英]JavaScript - How to remove all letters from an array of arrays

我是JavaScript的新手,如果有字母,我尝试删除该数组的一个数组

例如:[[“ x”,“ y”,2],[2,4],[5,3],[6,9],[“ a”,1]]

预期的输出将是: [[2, 4],[5, 3],[6, 9]] ;

在您的情况下,我认为问题在于内部循环。 因为data[i][j]将为"x","y",2,4,5...并且您不能将indexOf()应用于数字,所以会引发错误。

您可以根据Array.prototype.every()Array.prototype.filter()

 var data = [["y","x",2],[2, 4],[5, 3],[6, 9]] let res = data.filter(x => x.every(x =>!isNaN(x))); console.log(res) 

您的代码无法正常运行有两个原因:

  1. 您在内部循环声明中使用的是i而不是j

  2. 您正在尝试对数字执行indexOf()

您所需的输出会留下一些小的不确定性,但这是使用Array.filter()Array.every()的解决方案。

 var data = [["a","b",1,2],["y", "x"],[2, 4],[5, 3],[6, 9]]; var result = data.filter(group => group.every(item => !isNaN(item))); console.log(result); 

编辑:更新的代码以解决此评论:

如果第一个数组中有任何字母,它将被删除

要通过单循环获得预期结果,请使用filter和Math.max,如果数组包含字符串,则它为Math.max返回NaN

 var data = [["x","y", 2],[2, 4],[5, 3],[6, 9],["a", 1]]; console.log(data.filter(v => !isNaN(Math.max.apply(Math, v)))); 

codepen- https://codepen.io/nagasai/pen/zbRbob?editors=1010

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM