![](/img/trans.png)
[英]How to use JavaScript remove numbers and letters after a character from array
[英]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)
您的代码无法正常运行有两个原因:
您在内部循环声明中使用的是i
而不是j
您正在尝试对数字执行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))));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.