zoukankan      html  css  js  c++  java
  • 解决js中数组直接赋值出现的问题

    我在程序开发中定义了删除数组元素的代码:

    Array.prototype.remove = function(val){
        var index = this.indexOf(val)
        if(index > -1){
            //胶接,直接改变原数组
            this.splice(index,1)
        }
    }

    其中用到了splice函数,这个函数会直接改变原数组。

    我想要保存一份原来的数组,即studentData.excellentStudents,因此将它赋值给一个新的数组excellentStudents,然后进行数组操作。

    let excellentStudents = studentData.excellentStudents

    但是发现,使用remove函数操作数组excellentStudents后,studentData.excellentStudents数组也受到了影响。

    原来是数组直接赋值,传递的只是引用。

    解决方法则是复制一份新的数组喽。

    我们可以使用如下代码,用数组的concat函数,合并空数组和现有数组成为新的数组。

    let excellentStudents = [].concat(studentData.excellentStudents)

    即可。

  • 相关阅读:
    银行卡号每隔四位添加一个分隔符
    clipboard.js实现文本复制
    选中|复制文本
    react---之下拉菜单默认选中的值始终不变的问题
    create-react-app支持less配置
    数对
    安置路灯
    被三整除
    牛牛找工作
    C++ std::pair
  • 原文地址:https://www.cnblogs.com/luoyihao/p/15155480.html
Copyright © 2011-2022 走看看