js for循环中 is not a function报错

function largestOfFour(arr) {
  var outputArr = [];
  for(i=0; i < arr.length; i++){
    var newArray = arr[i].sort(function(a,b){
      return b-a;
    });
    outputArr.push(newArray[0]); //这样是正确的
   // outputArr = outputArr.push(newArray[0]); 为什么这样写是错误的? 

  }
  return outputArr;
}
阅读 2.8k
2 个回答

outputArr已经变成了一个number类型,没有push方法了。

首先你要理解push的意思,push()是向数组的末尾添加一个或多个元素,并返回新的长度。js的pop(),shift(),unshift(),push()都是操作数组后返回的是新数组的长度。所以outputArr = outputArr.push(newArray[0]);后outputArr就相当于=1了,所以无法进行push而报错的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题