Javascript通过解析来自对象

时间:2016-09-09 17:41:08

标签: javascript arrays

我目前正在开展一项项目,要求我使用美国人口普查局API。我的大部分代码都在我的项目部分工作,但是,我有一个我不理解的小问题。我想要做的是获取113个对象,从每个对象解析一个属性,然后将该属性(全部113)放入一个数组中。就像我说的,我几乎让我的代码工作。以下是工作原理:

   for (var i = 0; i <= response.features.length; i++){
      var dataPoint = response.features[i].properties.B19013_001E;
      console.log(dataPoint);
   }

以上代码将打印出控制台所需的所有113个点。 (对于那些好奇的人,B19013_001E是家庭收入的中位数,这是我想要的数据,基本上是一个县内的113个不同'区域'。) 现在,代码完成了我想要的,但现在当我创建数组部分时:

   var dataArray = [];

   for (var i = 0; i <= response.features.length; i++){
      var dataPoint = response.features[i].properties.B19013_001E;
      dataArray.push(dataPoint);
   }

   console.log(dataArray);

当我控制日志我的数组时,我只收到此错误消息: play.js:93未捕获的TypeError:无法读取未定义的属性“属性”

我不明白的是为什么我可以将所有需要的113个点单独提供给控制台,但是当我将它们放入阵列时我遇到了问题?我想到的一件事是,可能其中一个点不存在?但是当我看到113点的控制台记录时,我什么都没有得到null或未定义。任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:4)

您应该使用Array.map

var dataArray = response.features.map(function(feature) {
   return feature.properties.B19013_001E;
})

您收到该错误是因为<=将最后一次迭代置于数据集合的边界之外。您可以将其更改为<