У меня есть двумерный массив, как показано ниже:
array = [ [ 1, 1 ], [ 1, 2 ], [ 1, 1 ], [ 2, 3 ] ]
Я хочу сравнить значение в индексе массива, чтобы увидеть, есть ли у них повторяющиеся значения. Например
array[0] = [1,1];
array[1] = [1,2];
array[2] = [1,1];
Мы видим, что значения с индексами 0 и 2 совпадают, то есть [1,1]. Итак, в этом случае я хочу иметь настоящий флаг. Каков наиболее эффективный способ сделать это? или Какие существуют способы сделать это? Любое предложение или помощь было бы здорово с небольшим объяснением. Заранее спасибо.
Итак, я думаю, что вы можете сделать следующее:
Я думаю, вы можете использовать другой способ зацикливания массива, это то, что я пробовал:
// DECLARATIONS
array = [[ 1, 1 ], [ 1, 2 ], [ 1, 1 ], [ 2, 3 ]];
// LOOPING THE ARRAY
for (row of array)
{
// RETURN TO CONSOLE OR WHATEVER THE BOOLEAN VALUE
console.info(row[0] == row[1]);
}
Вы можете добиться этого, преобразовав элементы внутреннего массива в строку только для целей сравнения.
Демо:
const arr = [[ 1, 1 ], [ 1, 2 ], [ 1, 1 ], [ 2, 3 ]];
const stringConversion = arr.map((item) => JSON.stringify(item))
const duplicateElements = stringConversion.filter((item, index) => stringConversion.indexOf(item) !== index)
console.info(duplicateElements.length ? true : false);
String
для преобразования массива в одномерный массив строк и some
для проверки дублирования какого-либо элемента:
const arr = [[1, 1], [1, 2], [1, 1], [2, 3]];
const result = arr.map(String).some((v, i, a) => a.indexOf(v) !== i);
console.info(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }