为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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

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

正在回答

2 回答

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

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

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

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

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

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

1 回复 有任何疑惑可以回复我~
#1

慕斯卡1050067 提问者

明白了~~蟹大神~~~
2017-03-06 回复 有任何疑惑可以回复我~

这个这个嘛...

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~



3 回复 有任何疑惑可以回复我~
#1

慕斯卡1050067 提问者

给满分~~~~
2017-03-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信