कैसे देखें कि किसी सरणी में 2 या अधिक तत्व हैं जो समान हैं? [डुप्लिकेट]

Jan 28 2021

मेरे पास एक सरणी है, और मैं यह जांचना चाहता हूं कि सरणी के किसी भी तत्व को डुप्लिकेट किया गया है या नहीं।

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

जवाब

2 jfriend00 Jan 28 2021 at 04:14

एक सरल तरीका एक का उपयोग करना है 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"]));

1 BenBradshaw Jan 28 2021 at 04:18

यदि सरणी केवल तारों से भरी हुई है, तो आप एक सेट का उपयोग कर सकते हैं। सरणी से एक सेट बनाएं, फिर सरणी आकार की तुलना सेट आकार से करें। यदि वे समान हैं, तो वे अद्वितीय हैं। अगर वे अलग हैं, वहाँ एक नकली है। ये रहा एक सरल उदाहरण।

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);

Haytam Jan 28 2021 at 04:17

यहां यह जांचने का एक सरल तरीका है कि किसी सरणी में किसी विशिष्ट आइटम के डुप्लिकेट शामिल हैं।

उपयोग: 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;
}