|
//快排
function newQuick(arr) { let index = Math.floor(arr.length/2); //取中位数 let pivot = arr.splice(index, 1)[0]; //选择基准数 let leftArray = [], rightArray = []; // 创建左右数组 // arr.forEach( e =>{ // e < pivot ? leftArray.push(e) : rightArray.push(e) // }); arr.reduce((a, e)=> { e < pivot ? leftArray.push(e) : rightArray.push(e) }, []) return arr.length ? quicklySort(leftArray).concat([pivot], quicklySort(rightArray)) : arr } 杨姐有空看到了回复一下。 reduceforEach有什么区别;感觉forEach能实现的reduce也能实现;用哪个更好。 |
|
|
沙发#
发布于:2021-04-06 12:55
|
|
|
|
板凳#
发布于:2021-04-05 22:44
doubleyong:forEach方法,主要是循环,没有任何其它涵义 ; reduce是一个自定义的累计器,它主要用于累计,而累计需要进行循环。谢谢杨姐 |
|
|
地板#
发布于:2021-04-05 22:43
doubleyong:forEach方法,主要是循环,没有任何其它涵义 ; reduce是一个自定义的累计器,它主要用于累计,而累计需要进行循环。nice |
|
|
4楼#
发布于:2021-04-05 10:14
forEach方法,主要是循环,没有任何其它涵义 ; reduce是一个自定义的累计器,它主要用于累计,而累计需要进行循环。
使用哪个方法,主要看哪个更方便进行具体业务的实现。 你的示例代码,两个方法,其实都可以; 这里的reduce没有累计器的作用,其它也就相当于是一个循环的作用。 所以,我建议还是用forEach; |
|
|