老师,有问题

老师,有问题

var arr=[],i= 0,
num =prompt('请输入员工工资');
while (num !='退出'){
   num =prompt('请输入员工工资');
   arr[i]=num;
   i++;
};
arr.pop();
document.write(arr);

老师为什么我这样写法,数组的第一个也不会被删除?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你可以在arr.pop前面加一个document.write(arr)

你就会发现你输入的"退出"这个字符串也被保存在了arr数组里

所以,当你执行arr.pop()删除最后一个数组项,即删除的是"退出"这个字符串

所以,你输入的工资并没有被删除。

如果你再执行arr.pop,你输入的最后一个工资就会被删除了。


  • 慕沐7702526 提问者 #1
    老师,讲错了,数组的第一个也被删除了
    2019-05-23 11:38:16
  • 慕沐7702526 提问者 #2
    var newArr=[],i= 0,num = prompt('请输入'); while (num !=-1){ num = prompt('请输入') newArr[i]= num; i++; } newArr.pop(); newArr.sort(function(a,b){ return(b-a); }); document.write(newArr); 这个也是同样的问题,“-1”被删除了,但是第一次输入的数字也被删除了,但是我只执行了一次删除啊,为什么删除两个
    2019-05-23 11:42:15
  • sunnyU_hh 回复 提问者 慕沐7702526 #3
    因为你第一次输入的内容根本没有被存入数组中 第一次输入num =prompt('请输入员工工资'); 在存入数组的那个循环外边
    2019-05-23 11:46:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师