Самый быстрый / самый элегантный способ проверить, имеет ли 2D-массив одинаковую длину на строку? - PullRequest
2 голосов
/ 21 июня 2019

Допустим, у меня есть 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 Ответ

13 голосов
/ 21 июня 2019

Вы можете использовать every() и сравнивать length каждого массива с длиной первого.

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