问答详情
源自:7-20 颠倒数组元素顺序reverse()

为什么调换一下顺序结果显示不出来了呢??大神~~~~~

document.write(myarr1.reverse().join(""));

上面这句代码可以显示出结果:“你爱我”

document.write(myarr1.join("").reverse());

这句代码显示不出东西了 为什么呢????

提问者:慕斯卡1050067 2017-03-06 21:54

个回答

  • 小谢星
    2017-03-06 22:40:23
    已采纳

    你这两个写法都是一个myarr1对象,调运了reverse、join两个方法。

    为什么两个放在调换顺序就不行了?

    这个得先搞懂这两个方法的定义和返回值。

    不管上面哪个方式,第二个方法的调运,是必须通过第一个方法的返回值来调运的,这就必须保证你第一个方法的返回值类型,必须能够执行后面的方法。

    reverse方法,是针对数组的一个倒序,它的返回值是Array对象,而join是Array的一个方法,所以第一种写法,myarr1.reverse().join()是没问题的。

    第二个写法,join()方法是Array对象的方法,但是它返回的是一个字符串,字符串是不支持reverse方法的,所以第二种写法,myarr1.join("").reverse()会执行不成功。

  • highcker
    2017-03-06 22:31:02

    这个这个嘛...

    myarr1.reverse()  是给数组重新倒序排列 ,

    join("")的意思是把数组中所有元素以空字符串分割开,也就是变为字符串

    例如:

    var myarr1 = [1,2,3,4,5];

    第一句 myarr1.reverse().join("") -->执行过程先执行reverse()变为[5,4,3,2,1],然后执行join("");变为"54321"

    第二句 myarr1.join("") --> 执行过程先把myarr1连接成为一个字符串,“12345”,字符串是没有reverse()方法的哦,所以你的第二句报错了 


    给满分哦O(∩_∩)O~