Fuze JS найти имя с ключевыми словами - PullRequest
0 голосов
/ 06 сентября 2018

Я пытался извлечь некоторые данные из URL JSON.

Я смог сделать это, используя этот код:

function getObjects(obj, key, val) {
    var objects = [];
    for (var i in obj) {
        if (!obj.hasOwnProperty(i)) continue;
        if (typeof obj[i] == 'object') {
            objects = objects.concat(getObjects(obj[i], key, val));    
        } else 
        //if key matches and value matches or if key matches and 
value is not passed (eliminating the case where key matches but passed value does not)
        if (i == key && obj[i] == val || i == key && val == '') { //
            objects.push(obj);
        } else if (obj[i] == val && key == ''){
            //only add if the object is not already in the array
            if (objects.lastIndexOf(obj) == -1){
                objects.push(obj);
            }
        }
    }
    return objects;
}

..

var xhr = new XMLHttpRequest();
xhr.open("GET", json_url, true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
    // JSON.parse does not evaluate the attacker's scripts.
    var resp = JSON.parse(xhr.responseText);
    var item = "Entire Item Name";
    var name = (getObjects(resp, '', item));

Возвращает массив элемента, но имя элемента должно быть точным, вплоть до столиц.

Я пытался добавить этот искатель ключевых слов fuze.js

http://fusejs.io/

Я попытался добавить его в скрипт следующим образом:

var options = {
    shouldSort: true,
    //tokenize: true,
    threshold: 0.6,
    location: 0,
    distance: 100,
    maxPatternLength: 32,
    minMatchCharLength: 1,
    keys: ['name'],
    id: 'name'       
};

    var fuse = new Fuse(resp, options); 
    var result = fuse.search("a");
    console.log(result);

    }
}
xhr.send();

Материал fuze js находится внутри оператора if под именем var.

Вы можете видеть, что я пытался просто поставить простое "а", чтобы увидеть, действительно ли он вернул некоторые данные. и я перепробовал множество вариантов, и пока он не возвращает никаких результатов, что бы я ни пытался.

Есть идеи, почему это не работает?

...