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

Thuật toán tìm kiếm mờ trong JavaScript

Chúng tôi bắt buộc phải viết một hàm Chuỗi JavaScript mà trong đó chuỗi tìm kiếm có thể kiểm tra một cách lỏng lẻo chuỗi tìm kiếm trong chuỗi mà nó được sử dụng với.

Hàm nên xem xét tiêu chí này:Nó phải lặp lại các chữ cái truy vấn tìm kiếm và kiểm tra xem chúng có xuất hiện theo cùng một thứ tự trong chuỗi hay không.

Ví dụ -

('a haystack with a needle').fuzzySearch('hay sucks'); // false
('a haystack with a needle').fuzzySearch('sack hand'); // true

Ví dụ

const fuzzySearch = function (query) {
   const str = this.toLowerCase();
   let i = 0, n = -1, l;
   query = query.toLowerCase();
   for (; l = query[i++] ;){
      if (!~(n = str.indexOf(l, n + 1))){
         return false;
      };
   };
   return true;
};
String.prototype.fuzzySearch = fuzzySearch;
console.log(('a haystack with a needle').fuzzySearch('hay sucks'));
console.log(('a haystack with a needle').fuzzySearch('sack hand'));

Đầu ra

Điều này sẽ tạo ra kết quả sau -

false
true