Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中的关联数组:我在调试器中看到了什么_Javascript_D3.js - Fatal编程技术网

Javascript JS中的关联数组:我在调试器中看到了什么

Javascript JS中的关联数组:我在调试器中看到了什么,javascript,d3.js,Javascript,D3.js,因此,我正在使用safari(Rapid d3)课程中的d3示例,其中有一段代码用于为选项元素构建地图: if (teams.indexOf(row.TeamID) < 0) { teams.push(row.TeamID); teams[row.TeamID] = row.Team; } if(teams.indexOf(row.TeamID)

因此,我正在使用safari(Rapid d3)课程中的d3示例,其中有一段代码用于为选项元素构建地图:

  if (teams.indexOf(row.TeamID) < 0) {
    teams.push(row.TeamID);
    teams[row.TeamID] = row.Team;
  }
if(teams.indexOf(row.TeamID)<0){
teams.push(row.TeamID);
团队[row.TeamID]=row.Team;
}
row.TeamID是一个字符串

当这在几个团队中运行时,我会在调试器中看到以下内容:


我在这里看到了什么?我原以为javascript中没有关联数组?

本身没有关联数组(至少以前没有),但对象通常都是这样使用的,因为它们有属性(尽管由于继承的原因存在问题)


数组只是对象的一种类型,与所有对象一样,它也有属性。

这里更清楚-谢谢:这是一个详细的描述。我当然知道第一部分(对象作为关联数组)和第二部分(具有属性的数组),但是以前没有见过这样的用例:在另一个地方,他迭代数组并使用值(即mansfield town)获取名称作为属性teams[“mansfield town”],它几乎模拟了关联数组。“至少过去没有”是什么意思?“继承导致的it问题”是什么?@torazaburo,ES6定义了
Map
对象(和其他对象),它们是实际的关联数组。将对象用作关联数组的问题在于,当您尝试使用(…in…)的
遍历它们的属性时,您还将获得原型链设置的任何内容,如果不使用
hasOwnProperty
进行检查,可能会产生令人惊讶的结果。