จะดูได้อย่างไรว่าอาร์เรย์มี 2 องค์ประกอบขึ้นไปที่เหมือนกันหรือไม่? [ซ้ำ]
ฉันมีอาร์เรย์และต้องการตรวจสอบว่ามีองค์ประกอบใดในอาร์เรย์ซ้ำกันหรือไม่
["item1", "item2", "item3"] //false All the items are unique
["item1", "item2", "item1"] //true There are 2 of the same items.
คำตอบ
2 jfriend00
วิธีง่ายๆคือใช้ไฟล์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
หากอาร์เรย์เต็มไปด้วยสตริงเท่านั้นคุณสามารถใช้ชุดได้ สร้างชุดจากอาร์เรย์จากนั้นเปรียบเทียบความยาวอาร์เรย์กับขนาดชุด ถ้าเหมือนกันแสดงว่าไม่ซ้ำกัน หากแตกต่างกันแสดงว่ามีรายการที่ซ้ำกัน นี่คือตัวอย่างง่ายๆ
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
นี่เป็นวิธีง่ายๆในการทดสอบว่าอาร์เรย์มีรายการที่ซ้ำกันหรือไม่
การใช้งาน: 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;
}