属性时运行下面的代码,我得到了错误的不确定JavaScript不能读取的不确定
“不能读取属性‘字’上标有星号。
var arr = [{
key1: 'value1'
},
{
key1: 'value2'
}
];
for (var k = 0; k <= arr.length; k++) {
console.log(arr[k].key1);
}
属性时运行下面的代码,我得到了错误的不确定JavaScript不能读取的不确定
“不能读取属性‘字’上标有星号。
var arr = [{
key1: 'value1'
},
{
key1: 'value2'
}
];
for (var k = 0; k <= arr.length; k++) {
console.log(arr[k].key1);
}
你的数组索引范围是0,arr.length - 1
var arr = [{
key1: 'value1'
},
{
key1: 'value2'
}
];
for (var k = 0; k <= arr.length - 1; k++) {
console.log(arr[k].key1);
}
对于条件<=
,的k
值将变得2
未定义的最后一次迭代。
条件应该是k < arr.length
所以k
该值将是 “0 ... 1”
var arr = [{
key1: 'value1'
},
{
key1: 'value2'
}
];
for (var k = 0; k < arr.length; k++) {
console.log(arr[k].key1);
}
你迭代在一个空对象结束,改变循环条件从<到< =。
var arr = [{
key1: 'value1'
},
{
key1: 'value2'
}
];
for (var k = 0; k < arr.length; k++) {
console.log(arr[k].key1);
}
当你从0到迭代array.length,那么你在array.length + 1个元素迭代,所以你所要求的一个元素太多。
'K <= arr.length'将导致'ARR [2]'这显然' undefined'。改用'k
haim770