麻烦老师检查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头部逐次往后添加到数组中了。
祝学习愉快!
相似问题