繁体   English   中英

控制台日志显示数组的特定值的“未定义”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM