Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm ký tự không lặp lại đầu tiên của một chuỗi trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một chuỗi làm đối số đầu tiên và duy nhất.

Hàm sẽ tìm và trả về chỉ mục của ký tự đầu tiên mà nó gặp trong chuỗi chỉ xuất hiện một lần trong chuỗi.

Nếu chuỗi không chứa bất kỳ ký tự duy nhất nào, hàm sẽ trả về -1.

Ví dụ -

Nếu chuỗi đầu vào là -

const str = 'hellohe';

Sau đó, đầu ra phải là -

const output = 4;

Ví dụ

Sau đây là mã -

const str = 'hellohe';
const firstUnique = (str = '') => {
   let obj = {};
   for(let i = 0; i < str.length; i++){
      if(str[i] in obj){
         let temp = obj[str[i]];
         let x = parseInt(temp[0]);
         x += 1;
         temp[0] = x;
         obj[str[i]] = temp;
      } else {
         obj[str[i]] = [1, i]
      }
   }
   let arr = Object.keys(obj);
   for(let i = 0; i < arr.length; i++){
      let z = obj[arr[i]]
      if(z[0] === 1){
         return z[1];
      }
   }
   return -1;
};
console.log(firstUnique(str));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

4