function revertNumbers(...numberArray) {
   let rev = [];
   for(let i = 0; i <numberArray.length; i++)
   {
     rev.push(numberArray[i])
   }
   return rev.reverse();
}

console.log("revertNumbers", revertNumbers(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) === "9,8,7,6,5,4,3,2,1,0");


您能告诉我该代码中的数字如何反转吗?也无需使用.reverse方法。只需更改以下语句,是否有可能在另一个for循环中使用它:

(let i = 0; i <numberArray.length; i++)

最佳答案

您只需要反转循环的方向即可。均值从最后一个索引开始i,然后逐渐将其减小到0



function revertNumbers(...numberArray) {
   let rev = [];
   for(let i = numberArray.length - 1; i >= 0; i--)
   {
     rev.push(numberArray[i])
   }
   return rev.join(",")
}

console.log("revertNumbers", revertNumbers(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) === "9,8,7,6,5,4,3,2,1,0");





这也是reduceRight()的好用例



const revertNumbers = (...arr) => arr.reduceRight((ac, a) => ([...ac, a]), []).join(',')

console.log("revertNumbers", revertNumbers(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) === "9,8,7,6,5,4,3,2,1,0");

10-06 15:39