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

请问这个升序降序的具体实现是怎么样的呢?

正在回答

3 回答

童鞋,首先我说句对不起哈,在没有试验的时候就妄下定论。一楼那位童鞋说的是对的。你可以去这样试试,把数组里面的数字定义成两个大小不一的数字,在函数里面return 1或者-1,然后看出来,其实这个是按照大于1或者小于0或者等于0这个参数来进行设定这两个数字是该如何排列的。sort()这个去查看下javascript的api,里面应该有它这个封装的函数,那里面应该有他具体里面传进来的参数是几的时候应该如何排列的设置的。

0 回复 有任何疑惑可以回复我~

楼上的解释有点偏啊。。。首先,希望楼主仔细看看这个图片,

54c0a16a0001ab4805000338.jpg仔细瞅瞅这个为什么sort在开始没有函数写在sort里面的时候,会是这样的呢?仔细看看上面给的那个字符串的比较的,和数字比较的那个,不难发现,其实这个sort比较的时候,其实是这样比较的,他是按字符串的格式来比较的,也就是从字符串的第一个字母开始比较的。故而才有1<100<16这样的比较。然后,楼主再仔细看看这个图片,54c0a29e000181d404350775.jpg这是我从咱慕课里面的一个看懂了这些的同学的代码里面截取的,但是,后面的有点看不懂了。因为这个东西,我认为,既然比较是按第一个字母开始比较的的话,那么最后得到的应该是个相反的排的也就是-20,30,64,74,79(但是感觉自己这么排的话是不对的,因为如果按我这样排的话下面得到的那排数字也应该是相反的了,希望楼主可以自己弄懂了告诉我一下)。嗯,至于这个为什么会这么排呢?跟ASCII码里面的这些是有关的,不过嘿嘿,不过现在忘了这个ASCII码是怎么弄的了。嗯,如果希望懂这个为什么这样的话,我建议楼主去看看java里面的比较那一节。多去关注一下细节问题,我觉得这些问题应该是会迎刃而解的。

0 回复 有任何疑惑可以回复我~

循环数组两两比较,返回值大于0就是降序,小于0就是升序

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信