我有一个JSONArray
,其中包含JSONObjects
{firstname:'John', lastname:'Doe'}
。
有没有办法直接选择所有JSONObjects
firstname == 'John'
或唯一的方法是循环数组,测试字段firstname并将所有匹配的对象保存在另一个数组中?
由于
答案 0 :(得分:2)
您可以将其过滤掉:
var people = JSONArray.filter(function(obj) {
return obj.firstname == "John";
});
仅供参考:你有一个数组包含对象。
答案 1 :(得分:2)
filter method应该可以解决问题。
var jsonArrayString = '[{"firstname": "John","otherProp": "otherValue"},{"firstname": "other Name", "otherProp": "otherValue"}]';
var jsonArray = JSON.parse(jsonArrayString);
var filteredArray = jsonArray.filter(function(element) {
return element.firstname === "John";
});
console.log(filteredArray);
建议:< = IE 8不支持过滤方法,但MDN文章中有一个polyfill。