对于在循环中不打印所有元素 - Javascript
for in loop in not printing all the elements - Javascript
我有以下代码片段:
var headers = { 'date' : 'Date',
'number' : 'Total Responses',
'number' : 'Total 404 not found',
'number' : 'Total Connects',
'number' : 'Header Bytes',
'number' : 'Total Bytes',
'number' : 'Total Connects',
'number' : 'Data Read',
'number' : 'Files Requested'
};
for (var index in headers) {
console.log(index + " : " + headers[index])
}
这不会打印整个地图:
date : Date
number : Files Requested
为什么?对我来说一切似乎都很好(显然不是),但我无法弄清楚为什么我无法打印整个结构......
您正在声明具有相同名称的属性。 所以等效的是:
var headers = {};
headers.date = 'Date';
headers.number = 'Total Responses';
//etc
headers.number = 'Files Requested';
您正在覆盖该属性,因此最后一个属性获胜。
我总是认为 JavaScript 对象是键/值对的字典。 同样,您只能有一个密钥,在这种情况下,number
.
每个键只能有一个值。如果有两个或多个相同的密钥,则使用最后一个密钥。
使用唯一的属性名称。
var headers = { 'date' : 'Date',
'number1' : 'Total Responses',
'number2' : 'Total 404 not found',
'number3' : 'Total Connects',
'number4' : 'Header Bytes',
'number5' : 'Total Bytes',
'number6' : 'Total Connects',
'number7' : 'Data Read',
'number8' : 'Files Requested'
};
您的对象仅包含两个字段。 初始化对象时,如果两个字段具有相同的名称,则该名称的值将被最后一个名称覆盖。 因此,对于 JavaScript 程序来说,输出是正确的,即使它可能不是您想要的。 也许您可以使用一组对象,例如 [{'date': 'Date'}, {'number': 'Total Responses'}, {'number': 'Total 404 not found'}, ...]
使用 foreach 循环而不是 for。您似乎正在声明一个索引变量,但您应该将其设置为零并递增,以便循环可以循环访问数组作为替代方案。
相关文章:
- 如何访问数组中的数组元素(JavaScript)
- 如何找到从中调用函数的元素(Javascript)
- 另一个元素JAVAscript中的元素位置
- 隐藏元素:Javascript属性和CSS样式之间的区别
- 如何比较数组中的元素(javascript)
- 使用一个函数来不同的元素 JavaScript
- 我需要从数组中获取一些元素 - JavaScript
- 元素 JavaScript 的读取宽度
- 识别数组的最后一个元素 - javascript
- 你如何使 Math.random 数组中的每一个第 9 个元素都是同一个元素?[JavaScript]
- 即时创建 Asp.Net 元素 Javascript
- 在提交表单上动态更改输入元素 javascript
- Kendo UI Grid 获取当前元素 javascript 的 ID
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- Canvas 元素 + Javascript 在 Chrome 和 Firefox 中工作,而不是在 Internet
- 对于在循环中不打印所有元素 - Javascript
- 选择元素 |Javascript vs Jquery.
- 无法删除 DOM 元素(JavaScript,CreateJS)
- 单击元素>JavaScript输出文档.activeElement VS.事件目标
- 当用户在文本框中输入数字时,将动态获得数组元素javascript或PHP