快速排序数组(默认按升序排序)。
使用递归。使用Array.filter
和展开运算符(...
) 来创建一个数组,其中所有小于比较元素的值都在比较元素之前,并且所有大于比较元素元素都在比较元素之后。如果参数desc
为真值,返回数组按降序排序。
const quickSort = ([n, ...nums], desc) => isNaN(n) ? [] : [ ...quickSort(nums.filter(v => (desc ? v > n : v <= n)), desc), n, ...quickSort(nums.filter(v => (!desc ? v > n : v <= n)), desc) ];
quickSort([4, 1, 3, 2]); // [1,2,3,4] quickSort([4, 1, 3, 2], true); // [4,3,2,1]
更多代码 JavaScript 实用代码片段 请查看 https://www.html.cn/30-seconds-of-code/
最新评论
写的挺好的
有没有兴趣翻译 impatient js? https://exploringjs.com/impatient-js/index.html
Flexbox playground is so great!
感谢总结。
awesome!
这个好像很早就看到类似的文章了
比其他的教程好太多了
柯理化讲的好模糊…没懂