检查打字稿中的多维数组或 javascript 以检测重复值的最佳方法是什么?

What is the best way to check multidimensional array in typescript or javascript to detect duplicate values?

我有如下二维数组:

  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]。所以,在那种情况下,我想要真正的旗帜。最有效的方法是什么?或者有哪些不同的方法来做到这一点?任何类型的建议或帮助都会有一些解释。提前致谢。

那么,我认为你可以做的是:

  1. 循环多维数组的每个元素。
  2. 然后通过访问索引为0和索引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.log(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.log(duplicateElements.length ? true : false);

String 将数组转换为 one-dimensional 字符串数组,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.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }