当前,函数仅显示基于2个变量的数组的1个正确结果。向此JS搜索添加部分和多个结果功能
阵列样本数据
[{"username": "lromero2l", "first_name": "Lawrence", "last_name": "Romero", "gender": "Male", "sexuality": "Public-key value-added array", "bestFriend": "loperamide HCl"}, {"username": "glopez2o", "first_name": "Gloria", "last_name": "Lopez", "gender": "Female", "sexuality": "Balanced multi-tasking time-frame", "bestFriend": "Aconite, Arnica, Calendula, Hypericum, Ledum, Ruta Grav."}, {"username": "ereyes2p", "first_name": "Elizabeth", "last_name": "Reyes", "gender": "Female", "sexuality": "Future-proofed systemic infrastructure", "bestFriend": "Tretinoin"}, {"username": "ppalmer2q", "gender": "Male", "sexuality": "Optimized multi-tasking circuit", "bestFriend": "Pantoprazole Sodium"}, {"username": "harmstrong2r", "first_name": "Helen", "last_name": "Armstrong", "gender": "Female", "sexuality": "Seamless zero tolerance interface", "bestFriend": "ERYTHROMYCIN"}]
搜索功能
function myFunction(e) {
if((e.target.id === 'mySearch' && e.keyCode === 13) || e.target.id === 'searchButton'){
e.preventDefault();
var searchValue = document.getElementById("mySearch").value;
for(var i = 0; i < users.length; i++){
if(users[i]['bestFriend'] === searchValue || (users[i]['username'] === searchValue)){
document.getElementById("usernameOut").innerHTML = ("USERNAME" + '<br/>' + users[i].username);
document.getElementById("firstNameOut").innerHTML = ("FIRST NAME" + '<br/>' + users[i].first_name);
document.getElementById("lastNameOut").innerHTML = ("LAST NAME" + '<br/>' + users[i].last_name);
document.getElementById("genderOut").innerHTML = ("GENDER" + '<br/>' + users[i].gender);
document.getElementById("sexualityOut").innerHTML = ("SEXUALITY" + '<br/>' + users[i].sexuality);
document.getElementById("friendOut").innerHTML = ("BEST FRIEND" + '<br/>' + users[i].bestFriend);
displayImage();
document.getElementById("main_text").style.display = "none";
document.getElementById("return").style.display = "block";
return;
}
}
}
}
我想在功能显示部分结果。即如果4个以上的字符正确,则显示整个结果。
我还需要显示多个结果的功能。 (也就是说,如果该术语与“bestFriend”或“username”值相似,则显示)。这是否意味着将“ID”重组为“Class”?我试图用if(users[i]['bestFriend'] === searchValue || (users[i]['username'] === searchValue))
摆弄,以便让搜索词更具回旋余地,但一切似乎都打破了这个功能。该功能的哪些部分需要更改/我需要添加哪些内容才能实现此目的?
请不要犹豫,要求这个被编辑。我很尴尬,对于SO还是有点新鲜的。谢谢!
我在这里看到的唯一问题是*“这是否意味着重构将'ID'改为'Class'?“ - 当然,尝试维护一堆唯一的ID肯定是一个更好的主意,但是你没有*。 – Santi
@Santi谢谢。我稍微改变了请求。 – gezer4000