注释那两行和上面两行有什么区别,为什么注释的没有作用

注释那两行和上面两行有什么区别,为什么注释的没有作用

r(var i=0;i<10;i++){

        var nums=Math.floor(Math.random()*101);

        str+=nums+" ";

    }

    document.write(str+"<br>");


    var arr=str.split(" ");

    arr.pop();

    // str.split(" ").pop();

    // var arr=(str.split(" "));


    console.log(arr);


正在回答

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

3回答

同学你好,因为str.split()方法执行后,会返回一个新的数组,然后这个数组会使用pop()方法,但是作用在str上的只有split()方法,我们可以把str打印出来看下:

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

长度为30,说明后面还有一个空格:

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

所以并没有删除掉最后一个空格元素,因为pop()方法没有作用在str上面

祝学习愉快~

好帮手慕粉 2020-03-25 19:18:33

同学你好,因为数组的pop方法用于删除并返回数组的最后一个元素。我们可以打印出来看下:

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

因为数组的最后一项为空,所以结果也为空:

http://img1.sycdn.imooc.com//climg/5e7b3d5d0922d60211540054.jpg因为pop返回的不是修改后的数组,所以不能使用同学注释的方法。

祝学习愉快~

  • 提问者 慕慕4335856 #1
    我是这样用的啊: str.split(" ").pop(); //str转数组是str.split(" "),删除最后一项是str.split(" ").pop(); var arr=(str.split(" ")); //声明 arr等于删除最后项后的str.split(" ")数组 最后打印里显示的是这样的: ......"48","65""7","" 就是最后一项是:"" ,还存在呢 不是.pop的结果是不是空,是str.split(" ").pop(); 就没有删除掉最后一项, 所以str.split(" ").pop(); 这行代码为什么不能用呢
    2020-03-25 19:38:09
提问者 慕慕4335856 2020-03-25 14:38:57

用注释的两行,打印里,最后一个空元素还是没删掉


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Math.random()</title>

</head>

<body>

<script>

    var str="";

    for(var i=0;i<10;i++){

        var nums=Math.floor(Math.random()*101);

        str+=nums+" ";

    }

    

    var arr=str.split(" ");

    arr.pop();

    // str.split(" ").pop();

    // var arr=(str.split(" "));

    console.log(arr);

    var a=0;

</script>

</body>

</html>


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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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