老师帮忙看看哪个地方出错了,感觉我应该写的没问题

老师帮忙看看哪个地方出错了,感觉我应该写的没问题

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>splice</title>

</head>

<body>

<script>

   //补充代码

   var a=[],input=prompt("请输入");

   while(input!="-1"){

       input=prompt("请输入");

       a.push(input);

   }

   var b=a.splice(0,2,"hello");

   document.write(a)

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

3回答
好帮手慕星星 2020-01-07 15:58:29

同学你好,还是执行顺序问题,以当前练习为例写了注释,可以看一下:

http://img1.sycdn.imooc.com//climg/5e14396b09973dc309740405.jpg

在将弹框内容放进数组之前,都进行了判断是不是等于-1,所以当输入-1的时候不会放进数组中。

建议同学在练习过程中也可以理顺一遍思路,不要只想着结果是什么样的,还是实际测试出来为准。

祝学习愉快!

好帮手慕星星 2020-01-07 12:09:21

同学你好,除了分号状态不对,还有其他问题。例如弹框输入顺序为a,s,d,-1,结果为:

http://img1.sycdn.imooc.com//climg/5e14037809a8507201510047.jpg

以及循环结束时a数组为:

http://img1.sycdn.imooc.com//climg/5e1403b40980e15202580038.jpg

a没有进入数组,-1却在。这是因为使用push方法之前弹框两次框,所以第一次弹框输入的值没有放进数组中:

http://img1.sycdn.imooc.com//climg/5e1403f5090368e404410286.jpg

并且循环中是先将弹框内容放进数组中,下一次再判断弹框内容,这样导致-1也在数组中。可以修改为:

http://img1.sycdn.imooc.com//climg/5e14045409f8acf904450163.jpg

循环中push和弹框互换位置就好,自己再测试下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕的地1212123 #1
    那为什么调换了位置之后-1就不出现了呢,老师能不能帮忙举个例子,通俗点
    2020-01-07 14:24:19
  • 提问者 慕的地1212123 #2
    而且最后一个-1不出现的话不是应该加上pop()的嘛,为什么-1自动就不见了呢
    2020-01-07 14:28:05
提问者 慕的地1212123 2020-01-07 11:19:30

不好意思啊,找到问题了,下面splice分号没写对

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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