假设我有一个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。
答案 0 :(得分:13)
您可以使用every()
并将每个数组的length
与第一个数组的长度进行比较。
const isRegularMatrix = matrix => matrix.every(x => x.length === matrix[0].length)