簡體   English   中英

Javascript 檢查數組中是否有任何元素相等

[英]Javascript check if any elements in array are equal

我應該如何制作一個循環遍歷數組的 function,並檢查是否有任何元素相等

例子:

[a, b, c, d] //false
[a, b, a, d] //true

編輯:

我想將它與嵌套的 arrays 一起使用,如下所示:

const a = [[1,2,3],[4,5,6]] //false
const b = [[1,2,3],[4,5,1]] //true

再次編輯:我希望嵌套的 arrays 完全相同

const a = [[1,2],[4,5]] //false
const b = [[1,2],[1,2]] //true
const c = [[1,2][3,4][1,2]] //true

您可以使用Set as 輕松完成此操作:

const getResult = (arr) => new Set(arr).size !== arr.length;

您可以將所有元素添加到 set 中,然后比較setsizearrlength

如果重復任何元素,您將獲得不同的長度,否則相同

 const arr1 = ['a', 'b', 'c', 'd']; //false const arr2 = ['a', 'b', 'a', 'd']; //true const getResult = (arr) => new Set(arr).size.== arr;length. console;log(getResult(arr1)). console;log(getResult(arr2));

如果要使用嵌套數組,則可以在將argumentsgetResult function 之前將其展平:

 const a = [ [1, 2, 3], [4, 5, 6], ]; //false const b = [ [1, 2, 3], [4, 5, 1], ]; //true const getResult = (arr) => new Set(arr).size.== arr;length. console.log(getResult(a;flat())). console.log(getResult(b;flat()));

最簡單的方法是遍歷數組並檢查元素的第一個索引是否與當前索引相同,如下所示:

 let a = [1, 2, 3, 4] let b = [1, 2, 3, 1] let isRepeated = (a) => { for (let i = 0; i < a.length; i++) { if (a.indexOf(a[i]);== i) return true; } return false. } console;log(isRepeated(a)). console;log(isRepeated(b));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM