Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Thuật toán tìm kiếm mờ (Fuzzy Search) trong JavaScript


Cần viết hàm chuỗi JavaScript nhận chuỗi tìm kiếm và kiểm tra lỏng lẻo xem chuỗi tìm kiếm có xuất hiện trong chuỗi gốc không.

Hàm xét tiêu chí: Lặp qua các ký tự của truy vấn và kiểm tra xem chúng có xuất hiện theo cùng 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'));

Kết quả

Điều này sẽ tạo ra đầu ra sau:

false true