我想不使用内置方法来反转数组,但以下功能不起作用:
function reverseArray(arr) {
let brandNewArray = [];
for (let i = arr.length - 1; i >= 0; i--) {
brandNewArray += arr[i];
}
return brandNewArray;
}
reverseArray([1,2,3]);
答案 0 :(得分:4)
使用push
函数代替+=
。
function reverseArray(arr) {
let brandNewArray = [];
for (let i = arr.length - 1; i >= 0; i--) {
brandNewArray.push(arr[i]);
}
return brandNewArray;
}
console.log(reverseArray([1,2,3]));
答案 1 :(得分:3)
您需要将项目推入其中,而不是+=
。第一次使用+=
会为字符串brandNewArray
分配一个字符串(因为[] + 1
会给您"1"
),并带有最后一项的值。然后进行字符串串联,您得到321
而不是数组的最终值是brandNewArray
。
function reverseArray(arr) {
let brandNewArray = [];
for (let i = arr.length - 1; i >= 0; i--) {
brandNewArray.push(arr[i]);
}
return brandNewArray;
}
console.log(reverseArray([1,2,3]))
const reverseArray = arr => arr.reduce((acc, cur) => (acc.unshift(cur), acc), []);
console.log(reverseArray([1,2,3]))