你可以在这里看到一个有效的例子:
http://jsfiddle.net/bwhitney/ZDHp4/1/
我想在javascript中创建一个对象数组.当我尝试访问对象时,我得到"未定义"输出.以下是一些示例代码:
var dates = [];
var beginDate1 = new Date("01 / 01 / 01");
var endDate1 = new Date("02 / 02 / 02");
var beginDate2 = new Date("03 / 03 / 03");
var endDate2 = new Date("04 / 04 / 04");
// this outputs the correct dates
alert("before: " + beginDate1 + "--" + endDate1);
alert("before: " + beginDate2 + "--" + endDate2);
dates.push({
"beginDate": beginDate1,
"endDate": endDate1
}, {
"beginDate": beginDate2,
"endDate": endDate2
});
var date;
for (date in dates) {
// this outputs "date: undefined--undefined"
// why would that be?
alert("after: " + date.beginDate + "--" + date.endDate);
}
Run Code Online (Sandbox Code Playgroud)
for ... inJavaScript中的循环为您提供对象中的键,而不是值.
你真的应该使用数字索引:
for (var date = 0; date < dates.length; ++date) {
alert("date " + date + " is: " + dates[date]);
}
Run Code Online (Sandbox Code Playgroud)
迭代键for ... in不会只接收数字索引的数组元素; 它在数组上运行,就像它们是普通的普通对象一样.其他属性也将被提取,加上你甚至不能保证它会按升序数字顺序排列!
| 归档时间: |
|
| 查看次数: |
3545 次 |
| 最近记录: |