如果我有一个像[1,2,3,4]
这样的数组,我想复制和反转它,我如何让它返回[1,2, 3,4,4,3,2,1]
?
Array.prototype.duplicateAndReverse = function() {
const initial = this;
const reversed = initial.reverse();
return initial.concat(reversed);
}
我在这里做错了什么?它返回 [4,3,2,1,4,3,2,1]
最佳答案
试试这个:
Array.prototype.duplicateAndReverse = function() {
const initial = this;
const reversed = initial.slice().reverse();
return initial.concat(reversed);
}
var myArray = [1,2,3,4];
alert(myArray.duplicateAndReverse());
您的代码正在反转 initial
并将 reversed
设置为结果,因此您有两个相同的(反转的)数组。相反,使用 .slice()
来复制初始数组,并将其反转。
关于Javascript 扩展 Array 所以它复制和反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308092/