为什么可以't direcrlty通过在javascript中使用.push()返回一个值

Why can't direcrlty return a value by using .push() in javascript?

本文关键字:push 返回 一个 javascript direcrlty 为什么      更新时间:2023-09-26

以下面的flatten函数为例,为什么我不能直接在累加器上使用return。Push()

 function flatten(array){
      return reduce(array,function(accumulator, value){
          if(Array.isArray(value)){
              each(value,function(value1){    
                  return accumulator.push(value1);     //as shown 
                  })
              }else{
                  return accumulator.push(value);      //as shown
                  }  
          },[]); 
      };

相反,我需要在单独的线路上返回累加器?

 function flatten(array){
      return reduce(array,function(accumulator, value){
          if(Array.isArray(value)){
              each(value,function(value1){
                  accumulator.push(value1);
                  })
              }else{
                  accumulator.push(value);   
                  }  
            return accumulator             //as shown 
          },[]);  
      };

但是如果使用像.contat()这样的方法,我将能够在它上使用return

push方法返回数组的新长度。

推送的MDN文档

concat方法返回一个全新的数组,该数组包含两个数组的组合。

concat 的MDN文档

如果你想要一个有点"奇怪"的解决方案,意味着你可以在同一行返回,你可以这样做:return (accumulator.push(value1) + 1) && accumulator;

+1是为了确保0的索引为真。

就像我难过的一样,它允许您返回您想要的行,但带有奇怪的代码。也许适合你的情况?

但您想要使用的似乎是concat