面试题:数组随机排列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题:数组随机排列相关的知识,希望对你有一定的参考价值。
今天去面试做了一套题,有个题目是就是数组随机排列。 我脑子里并没有概念,只是因为前几天看javascript高级程序设计3的第五章讲数组的时候讲解的数组排序方法reverse() 和sort()。reverse 是颠倒数组中元素的位置并返回颠倒后的数组,按照字符串的Unicode码位点(code point)排序;而js排序是就是用 sort 方法来排序也是按照的是按照字符串的Unicode码位点(code point)排序;sort方法的参数只有一个就是compareFunction,翻译过来就是比较函数。
上图是sort比较规则。
了解完整个sort,回归题目。 数组随机排序,看到随机,我们第一反应就是用Math.random函数,排序用sort,但是该怎么排序?在面试中我一直在思考,然后面试完了我就百度了一下找到了答案。
下面是完整代码
var arr = ["1","2",1,2,6,"sdas","sqqwcm","qywcqkn","david"]; function compare (){ return Math.random() > 0.5 ? 1 : -1; } var newArr = arr.sort(compare); console.info(newArr);
以上是关于面试题:数组随机排列的主要内容,如果未能解决你的问题,请参考以下文章
Python面试必考重点之列表,元组和字典第四关——编写一个函数(不要使用python模块的函数),打乱列表元素的顺序/如何对列表元素进行随机排列