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