在节点js中获取二维数组的维数

时间:2019-05-20 18:35:36

标签: arrays node.js

我正在Node js中的Discord机器人上工作,我需要获取2d数组的2维尺寸的长度。 我的数组是这样构造的,在需要时,算法会在底部扩展:

var users = [["","","","",""]];

现在我需要知道如何获得尺寸。 我本来就是这样做的,但是那没用。

// for the y length
users.length

// for the x length
users[i].length

希望可以为您提供帮助

预先感谢

恩里科

3 个答案:

答案 0 :(得分:0)

实际上您几乎是正确的:

var users = [[1,2],[3,4]]
users.length // y
users[0].length // x

请记住,自X以来,每个X要求的索引都从0开始,并且每行可能都不同。

答案 1 :(得分:0)

假设数组中的所有元素与第一个元素的长度都没有变化,您可以使用以下方法获得第一个元素的长度

var dimmensions = [users.length, users[0].length]
// returns [1, 5]

在一个更加实际的世界中,对于数组用户而言,获取每个元素的尺寸并决定使用最大还是最小的选择可能会更好,我自然会选择最大的选择。

var users = [["", "", ""], ["", ""], ["", "", "", ""]];
var elementsLength = users.map((user) => (user.length));
var lengthY = Math.max(...elementsLength);
var lengthX = users.length;
var dimmensions = [lengthX, lengthY];
// returns [3, 4]

这一切都取决于您想要什么。

答案 2 :(得分:0)

您的数组var users = [["","","","",""]];是一个2d数组,其中仅占用第0个索引。在您的情况下,users[i].length可能会在索引1和更高的索引上引发某种length not defined错误。您应该使用users[0].length来获取2d元素的长度