从包含JSONArray的所有JSONObjects中选择

时间:2014-10-09 13:58:05

标签: javascript json node.js arrays

我有一个JSONArray,其中包含JSONObjects {firstname:'John', lastname:'Doe'}

有没有办法直接选择所有JSONObjects firstname == 'John'或唯一的方法是循环数组,测试字段firstname并将所有匹配的对象保存在另一个数组中?

由于

2 个答案:

答案 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。