Kode ini mendefinisikan fungsi bernama firstNonRepeatingElement() yang mengambil satu parameter, sebuah string, dan mengembalikan karakter pertama yang tidak berulang dalam string tersebut.

Fungsi ini pertama-tama menginisialisasi objek kosong bernama obj. Ia kemudian menggunakan perulangan for-of untuk mengulangi setiap karakter dalam string masukan. Untuk setiap karakter, kode memeriksa apakah karakter tersebut sudah ada sebagai kunci di objek obj. Jika ya, nilai kunci tersebut (yang mewakili berapa kali karakter tersebut muncul dalam string) bertambah 1. Jika kunci belum ada, maka dibuat dan disetel ke nilai 1.

Setelah perulangan for-of selesai, fungsi menggunakan perulangan for-in untuk melakukan iterasi melalui setiap kunci di objek obj. Untuk setiap kunci (yang mewakili karakter unik dalam string input), kode akan memeriksa apakah nilai kunci tersebut sama dengan 1. Jika ya, fungsi akan segera mengembalikan kunci tersebut (yang merupakan karakter pertama yang tidak berulang dalam string input). rangkaian).

Jika perulangan for-in selesai tanpa menemukan kunci dengan nilai 1, fungsi akan mengembalikan -1 untuk menunjukkan bahwa tidak ada karakter tidak berulang yang ditemukan.

Pada akhirnya, fungsi tersebut dipanggil dengan string sampel untuk mengujinya, dan fungsi tersebut mengembalikan elemen pertama yang tidak berulang.

function firstNonRepeatingElement(str) {
  const obj = {}
  for (let elem of str) {
    if (obj[elem]) {
      obj[elem] = obj[elem] + 1
    } else {
      obj[elem] = 1
    }
    // obj[elem] = obj[elem] ? obj[elem] + 1 : 1
  }
  // console.log('occurence', obj)

  for (let elem in obj) {
    if (obj[elem] == 1) {
      return elem
    }
  }

  return -1
}

var str = '1122343599787'
console.log(firstNonRepeatingElement(str))

Pendekatan menggunakan objek untuk melacak berapa kali setiap karakter muncul dalam string, dan kemudian melakukan iterasi melalui objek untuk menemukan karakter pertama yang tidak berulang adalah cara yang efisien untuk menyelesaikan masalah ini. Ia memiliki kompleksitas waktu O(n) karena ia melakukan iterasi melalui string input satu kali, dan melalui objek satu kali, di mana n adalah jumlah karakter dalam string input.

Berikut adalah contoh bagaimana fungsi firstNonRepeatingElement() dapat digunakan:

let str = "abcabcdefgh"
let firstNonRepeatingChar = firstNonRepeatingElement(str)
console.log(firstNonRepeatingChar) // Output: d

Dalam contoh ini, string masukannya adalah “abcabcdefgh”. Fungsi firstNonRepeatingElement dipanggil dengan string ini sebagai argumennya. Fungsi ini menggunakan perulangan for-of untuk mengulangi setiap karakter dalam string masukan dan menghitung kemunculannya di objek objek. Kemudian ia menggunakan loop for-in untuk melakukan iterasi melalui setiap kunci di objek obj. Untuk setiap kunci (yang mewakili karakter unik dalam string masukan), kode memeriksa apakah nilai kunci tersebut sama dengan 1. Kode mengembalikan kunci pertama yang memiliki nilai 1, yaitu 'd' dalam kasus ini.

Jadi keluaran dari contoh ini adalah 'd'.

Terima kasih telah membaca. Selamat belajar 😄

Dukung publikasi kami dengan mengikutinya



Lihat juga artikel berikut ini.