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

问题描述 投票:1回答:3

我是JavaScript的新手,如果有一封信,我正在尝试删除数组的数组

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

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

javascript arrays indexof arrayofarrays
3个回答
2
投票

在你的情况下,我认为问题是内循环。因为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)

2
投票

您的代码不起作用有两个原因:

  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);

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

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


1
投票

要使用单循环实现预期结果,请使用filter和Math.max,如果array包含string,则返回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

© www.soinside.com 2019 - 2024. All rights reserved.