麻烦老师检查2-11作业,谢谢。

来源:2-11 编程练习

慕桂英1122475

2023-03-20 11:25:45

为什么

arr [arr.length]= input;

可以实现让input的数据登记到对应的数组下标位置呢?不是太明白。


arr.length不是数组的长度么?我理解这个语句的意思是:将input的数值登记到等同于数组长度的下标位置。

可是我们这里并没有书写比如“在每次input时,”length++的语句呀,所以length的应该不会变动呀?为什么可以实现后面输入的数字自动排在后面,而不是将之前输入的数值覆盖掉?

<!DOCTYPE html>
<html>
  <head lang="en">
    <meta charset="UTF-8" />
    <title>统计员工工资</title>
  </head>
  <body>
    <script>
      var input;
      var arr = [];

      while (input != '退出') {
        input = prompt("请输入员工工资");
        arr [arr.length]= input;
      }
      arr.length-=1;
      document.write(arr);
    </script>
  </body>
</html>


写回答

1回答

好帮手慕久久

2023-03-20

同学你好,代码是对的,问题解答如下:

1、arr.length是数组的长度,它是动态的。往数组中追加元素的时候,length属性值会跟着变化(有自动计算更新的性质)。初始时,length是0;往arr中追加1个元素后,length会自动变成1,因此不需要手动length++。

2、“将input的数值登记到等同于数组长度的下标位置”这句话理解是对的,只是不够具体。

初始时,length是0,arr[arr.length]=arr[0];第1次输入后,arr[arr.length]=input就是arr[0]=input,即把第1次输入的内容,追加到数组中索引是0的位置。

追加1次内容后,length变成1,arr[arr.length]=arr[1];第2次输入后,arr[arr.length]=input就是arr[1]=input,即把第2次前输入的内容,追加到数组中索引是1的位置。

追加2次内容后,length是2,arr[arr.length]=arr[2];第3次输入后,arr[arr.length]=input就是arr[2]=input,即把第3次前输入的内容,追加到数组中索引是2的位置。

......以此类推......

这样就把输入内容从arr头部逐次往后添加到数组中了。

祝学习愉快!

0

0 学习 · 17877 问题

查看课程