[
{"lastName":"Noyce","gender":"Male","patientID":19389,"firstName":"Scott","age":"53Y,"},
{"lastName":"noyce724","gender":"Male","patientID":24607,"firstName":"rita","age":"0Y,"}
]
以上是我的JSON数据
var searchBarInput = TextInput.value;
for (i in recentPatientsList.length) {
alert(recentPatientsList[i].lastName
}
我正在收到警报。现在我有一个TextInput,在输入时应搜索Json并产生结果。我正在寻找姓氏值。
我如何获取值并在我的JSON中搜索。
答案 0 :(得分:3)
此:
var searchBarInput = TextInput.value;
for (i in recentPatientsList.length) {
alert(recentPatientsList[i].lastName); // added the ) for you
}
不正确。迭代数组应该做的是:
for (var i = 0; i < recentPatientsList.length; ++i) {
alert(recentPatientsList[i].lastName);
}
“for ... in”机制并不是真正用于迭代数组的索引属性。
现在,要进行比较,您只需在文本输入中查找名称等于列表条目的“lastName”字段:
for (var i = 0; i < recentPatientsList.length; ++i) {
if (searchBarInput === recentPatientsList[i].lastName) {
alert("Found at index " + i);
}
}
答案 1 :(得分:1)
您不应该使用for..in
来迭代数组。而是使用普通的旧for循环。要获取与姓氏匹配的对象,请过滤数组。
var matchingPatients = recentPatientsList.filter(function(patient) {
return patient.lastName == searchBarInput;
});