最快/最优雅的方法来验证2D数组每行的长度相同吗?

时间:2019-06-21 16:26:12

标签: javascript arrays matrix

假设我有一个2D数组:

const matrixRegular = [
    ['a', 'b', 'c'],
    ['e', 'f', 'g'],
];

假设我要验证此矩阵中的每一行都具有相同的长度,因此上面的示例是有效的矩阵,但是下面的示例不是:

const matrixIrregular = [
    ['a', 'b', 'c'],
    ['e', 'f']
];

什么是干净/优雅的方法?这是我的一线客:

const isRegularMatrix = matrix => new Set(data.map(row => row.length)).size === 1

将矩阵转换为仅具有行长的数组,然后使用Set确保每个元素都是重复的(相同长度),因此尺寸为1。

1 个答案:

答案 0 :(得分:13)

您可以使用every()并将每个数组的length与第一个数组的长度进行比较。

const isRegularMatrix = matrix => matrix.every(x => x.length === matrix[0].length)