Javascript 通过从对象解析数据来解决数组问题

标签 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 Uncaught TypeError: 无法读取未定义的属性“属性”

我不明白的是,为什么我可以将我需要的所有 113 个点单独获取到控制台,但是当我将它们放入数组时却遇到问题?我想到的一件事是,也许其中一个点不存在?但是当我查看 113 点的控制台日志记录时,我没有得到 null 或 undefined 的任何信息。任何帮助都会很棒,谢谢!

最佳答案

你应该使用 Array.map :

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

您收到该错误是因为 <=将最后一次迭代放在数据收集范围之外。您可以将其更改为 <

关于Javascript 通过从对象解析数据来解决数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39417025/

相关文章:

php - 如何在循环时以及在数组内部插入数据

java - 为什么这两个代码没有给出相同的输出?

javascript - 切换每个产品的信息

arrays - 在数组上使用 'Contains'

c - 如何将 uint32 转换为 unsigned char 数组

javascript - 如何停止现有的微调器

C++ 数组大小 x86 和 x64

javascript - 类应该显示/隐藏,具体取决于其内容 - 但它只会被隐藏

javascript - var foo = bar&& bar.getSomething(); 的用法在 JavaScript 中

javascript - 如何使用纯 javascript 显示和隐藏模态对话框?