Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาสตริงที่ไม่มีตัวอักษรซ้ำในอาร์เรย์ - JavaScript

ฟังก์ชันนี้คืนสตริงตัวแรกในอาร์เรย์ที่ไม่มีตัวอักษรซ้ำกันเลย (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