ฟังก์ชันนี้คืนสตริงตัวแรกในอาร์เรย์ที่ไม่มีตัวอักษรซ้ำกันเลย (unique characters) หากไม่มีคืน false
ตัวอย่าง
// Input: ['54gdgdfe3', '434ffd', '43frdf', '43fdhnh', 'wgcxhjny', 'fsdf34'] // Output: 'wgcxhjny' (ตัวอักษรทุกตัวไม่ซ้ำกัน)
ตัวอย่างโค้ด
const arr = ['54gdgdfe3', '434ffd', '43frdf', '43fdhnh', 'wgcxhjny', 'fsdf34'];
const isUnique = str => {
// ตรวจสอบว่าทุกตัวอักษรมี first index เท่ากับ last index (ไม่ซ้ำ)
return str.split('').every(el => str.indexOf(el) === str.lastIndexOf(el));
};
const findUniqueString = arr => {
for (let i = 0; i < arr.length; i++) {
if (isUnique(arr[i])) {
return arr[i];
}
}
return false;
};
console.log(findUniqueString(arr));
การทำงานของ isUnique
split('')- แยกตัวอักษรevery()- ตรวจสอบทุกตัวอักษรindexOf === lastIndexOf- ตัวอักษรปรากฏครั้งเดียว
ผลลัพธ์
wgcxhjny
Complexity: O(n × m²) โดย n = จำนวนสตริง, m = ความยาวสตริง สำหรับข้อมูลใหญ่ควรใช้ Set