Javascript 扩展 Array 所以它复制和反转

标签 javascript

如果我有一个像[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/

相关文章:

javascript - 如何检查是否所有复选框都未选中

javascript - document.getElementById 不会给我 "style"来改变背景颜色

javascript - 自动进度输入字段在 Firefox 中删除 '0' s

javascript - 用javascript替换所有选定的元素

javascript - 使用 CSS 制作高度动画

javascript - json 函数在 vs 2010 中未执行

javascript - 谷歌折线图正在绘制额外的线条

javascript - html页面完全加载时无法保留文本框值

javascript - 如何为 getter/setter 编写类型定义( typescript )

javascript - ng-include 没有获取带有 utf-8 字符的文件名