Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

อัลกอริธึมการค้นหาแบบคลุมเครือใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript String ที่รับสตริงการค้นหา โดยสามารถตรวจสอบสตริงการค้นหาในสตริงที่ใช้ได้แบบหลวมๆ

ฟังก์ชันควรคำนึงถึงเกณฑ์นี้:ควรวนซ้ำตัวอักษรคำค้นหาและตรวจสอบว่าเกิดขึ้นในลำดับเดียวกันในสตริงหรือไม่

ตัวอย่างเช่น −

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

ตัวอย่าง

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'));

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

false
true