在搜索应用程序中用JSON数据交换JavaScript数组?

在搜索应用程序中用JSON数据交换JavaScript数组?,javascript,jquery,arrays,json,search,Javascript,Jquery,Arrays,Json,Search,大家好,我有一个应用程序,其中脚本search.js搜索JavaScript数组,当用户在搜索栏中输入单词并按enter键时,显示结果列表。我正在尝试切换文件artists.JSON中JSON数据的数组 function Artist(image, title, link) { this.image = image; this.title = title; this.link = link; } var artists = [] artists.push(new Arti

大家好,我有一个应用程序,其中脚本search.js搜索JavaScript数组,当用户在搜索栏中输入单词并按enter键时,显示结果列表。我正在尝试切换文件artists.JSON中JSON数据的数组

function Artist(image, title, link) {
    this.image = image;
    this.title = title;
    this.link = link;
}
var artists = []
artists.push(new Artist("image", "item1", "1.html"));
artists.push(new Artist("image", "item2", "2.html"));
artists.push(new Artist("image", "item3", "3.html"));
artists.push(new Artist("image", "item4", "4.html"));
artists.push(new Artist("image", "item5", "5.html"));
artists.push(new Artist("image", "item6", "6.html"));

var searchBox = document.querySelector("#search");
searchBox.focus();

function doSearch(event) {
    var msg = document.querySelector("#msg");

    var artistList = document.querySelector("#artist-list");
    artistList.innerHTML = "";

    var searchTerm = searchBox.value.trim().toLowerCase();
    msg.innerHTML = "";

    if (event.keyCode === 13) {
        if (searchTerm === "") {
            msg.innerHTML = "You didn't enter anything";
            msg.classList.add("error");
        } else {
            var count = 0;
            for (var i = 0; i < artists.length; i ++) {

                if (artists[i].title.toLowerCase().search(searchTerm) !== - 1) {
                    artistList.innerHTML += "<li><a href='artists/" + artists[i].link + "'>" + artists[i].title + "<a/></li>";
                    count ++;
                }
//else if()

            }
            msg.innerHTML = "For " + searchTerm + ". We found " + count + " results.";
            msg.classList.remove("error");
        }
    }
}

searchBox.addEventListener("keyup", doSearch, false);
var msgTxt = document.querySelector("#msg");
var artistList = document.querySelector("#artist-list");
var searchBox = document.querySelector("#search");
msgTxt.innerHTML = "";
searchBox.value = "";

searchBox.addEventListener("keyup", doSearch, false);

]

如果要将类转换为简单对象,最好的方法是向类中添加如下方法:

Artist.prototype.toJson=function() {
  return {
    image:this.image,
    title:this.title,
    link:this.link
  }
}

那么,将Artister数组转换为JSON数组所需要做的就是
artists.map(函数(a){return a.toJson();})

您不能将JSON数据放在
artists
变量中吗?您应该使用AJAX尝试一些东西,或者在尝试了一些东西之后,您可以问一个问题。事实上,这个问题是离题的,因为有太多不同的方法来实现这一点。我不想搜索JavaScript数组,我想通过AJAX加载JSON数据并搜索它。
Artist.prototype.toJson=function() {
  return {
    image:this.image,
    title:this.title,
    link:this.link
  }
}