Butterfly
侠客
侠客
  • 最后登录2021-05-11
  • 发帖数16
阅读:9194回复:4

[javascript]reduce与forEach

楼主#
更多 发布于:2021-04-05 01:48
//快排
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也能实现;用哪个更好。
doubleyong
管理员
管理员
  • 最后登录2026-05-25
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
沙发#
发布于:2021-04-06 12:55
Butterfly:谢谢杨姐回到原帖
不用客气,欢迎提问,进行更多探讨,哈哈
知识需要管理,知识需要分享
Butterfly
侠客
侠客
  • 最后登录2021-05-11
  • 发帖数16
板凳#
发布于:2021-04-05 22:44
doubleyong:forEach方法,主要是循环,没有任何其它涵义 ; reduce是一个自定义的累计器,它主要用于累计,而累计需要进行循环。


使用哪个方法,主要看哪个更方便进行具体业务的实现。


你的示例代码,两个方法,其实都可以; 这里的reduc...
回到原帖
谢谢杨姐
Butterfly
侠客
侠客
  • 最后登录2021-05-11
  • 发帖数16
地板#
发布于:2021-04-05 22:43
doubleyong:forEach方法,主要是循环,没有任何其它涵义 ; reduce是一个自定义的累计器,它主要用于累计,而累计需要进行循环。


使用哪个方法,主要看哪个更方便进行具体业务的实现。


你的示例代码,两个方法,其实都可以; 这里的reduc...
回到原帖
nice
doubleyong
管理员
管理员
  • 最后登录2026-05-25
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
4楼#
发布于:2021-04-05 10:14
forEach方法,主要是循环,没有任何其它涵义 ; reduce是一个自定义的累计器,它主要用于累计,而累计需要进行循环。


使用哪个方法,主要看哪个更方便进行具体业务的实现。


你的示例代码,两个方法,其实都可以; 这里的reduce没有累计器的作用,其它也就相当于是一个循环的作用。


所以,我建议还是用forEach;
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号