使用Javascript搜索JSON

时间:2011-04-23 20:44:06

标签: javascript json

  [
{"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中搜索。

2 个答案:

答案 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;
});