[英]Console log shows 'undefined' for a specific value of an array
我试图将与当前月份的星期日和星期六对应的值存储在一个数组 ( arr
) 中并将其显示在控制台中,变量 'd' 表示当月的天数。
当我尝试显示像console.log(arr[1])
这样的特定值时,它在控制台中显示“未定义”。
let arr = [];
console.log(arr)
console.log(arr[0]);
const renderDay = () => {
let td = [];
for (let i = 1; i <= d; i++) {
if(days[i].toLocaleDateString("fr-FR", options).slice(0,3)==='sam' ||
days[i].toLocaleDateString("fr-FR", options).slice(0,3)==='dim'){
td.push(<td className="test" key={i}>{days[i].toLocaleDateString("fr-FR", options).slice(0,3)}</td>);
arr.push(i);
}else
td.push(<td key={i}>{days[i].toLocaleDateString("fr-FR", options).slice(0,3)}</td>);
}
return td;
};
我想检查数组是否为空,所以我用console.log(arr)
显示整个数组,输出看起来不错,它显示了一个长度为: 8 arr = {0: 6 , 1: 7 , 2: 13 , 3: 14 , 4: 20 , 5: 21 , 6: 27 , 7: 28}
的数组arr = {0: 6 , 1: 7 , 2: 13 , 3: 14 , 4: 20 , 5: 21 , 6: 27 , 7: 28}
,代表当月周六周日的索引,但是我无法通过索引访问每个特定值。
如何通过索引( arr[0]
、 arr[1]
、 arr[2]
....)访问每个特定值?
我认为您过早地调用了console.log
。 console.log(arr)
仅有效,因为记录了对该数组的引用,并在renderDay
运行后立即更新。 在此处检查 MDN: console.log 文档
请注意,如果您在最新版本的 Chrome 和 Firefox 中记录对象,则您在控制台上记录的是对对象的引用,这不一定是您调用 console.log 时对象的“值”。 log(),但它是您打开控制台时对象的值。
在代码中的某处调用renderDay
后,尝试记录arr[0]
。
您还可以尝试将console.log(arr)
替换为console.log(arr.toString())
以获取arr
在您记录它的确切时刻的值 - 在运行renderDay
之前renderDay
时它应该为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.