【问题标题】:How to see if an array has 2 or more elements that are the same? [duplicate]如何查看一个数组是否有 2 个或更多相同的元素? [复制]
【发布时间】:2021-05-01 18:41:50
【问题描述】:

我有一个数组,我想检查数组中的任何元素是否重复。

["item1", "item2", "item3"] //false All the items are unique
["item1", "item2", "item1"] //true There are 2 of the same items.

【问题讨论】:

  • 任何项目?还是一个特定的(如“item1”)?
  • 将数组转换为Set。如果集合和数组的元素个数相同,则它们都是唯一的。
  • 一个特定的,比如“item1”
  • 小心“相同”和“重复”
  • 所以["item1", "item2", "item2"] 是假的?

标签: javascript node.js


【解决方案1】:

一个简单的方法是使用Set

function doesContainDups(array) {
   let set = new Set(array);
   return set.size !== array.length;
}

console.log(doesContainDups(["item1", "item2", "item3"]));
console.log(doesContainDups(["item1", "item2", "item1"]));

【讨论】:

    【解决方案2】:

    如果数组只填充字符串,则可以使用集合。 从数组创建一个集合,然后将数组长度与集合大小进行比较。如果它们相同,则它们是唯一的。如果它们不同,则存在重复。这是一个简单的例子。

    const arr1 = ["item1", "item2", "item3"];
    const arr2 = ["item1", "item2", "item1"];
    const setFromArr1 = new Set(arr1);
    const setFromArr2 = new Set(arr2);
    const arr1AllUnique = arr1.length === setFromArr1.size;
    const arr2AllUnique = arr2.length === setFromArr2.size;
    console.log(arr1AllUnique);
    console.log(arr2AllUnique);

    【讨论】:

      【解决方案3】:

      这是测试数组是否包含特定项的重复项的简单方法。

      用法:containsDuplicateOf(yourArray, "item1")

      function containsDuplicateOf(array, item) {
         for (let i = 0; i < array.length; i++) {
             const current = array[i];
             let count = 0;
             for (let j = 0; j < array.length; j++) {
                 if (array[j] === current)
                     count++;
                     
                 if (count > 1) return true;
             }
         }
      
         return false;
      }
      

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 1970-01-01
        • 2021-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 2015-02-24
        • 1970-01-01
        相关资源
        最近更新 更多