JavaScript数组分配问题

这个问题在这里已经有了答案:

  • Javascript的参考与价值[复制] 4个答案

  • 当你做一些像array2 = array1; 你只是将array2设置为对array1的引用。 要创建array1的副本,你需要做array2 = array1.slice();

    此外,您不能使用array1.value1 ='1';设置数组元素array1.value1 ='1'; 。 你在那里做的是将你的数组转换成一个对象。 所以你应该做的是:

    var array1 = [];
    var array2 = [];
    array1[0] = 1;
    array2 = array1.slice();
    array2[1] = 2;
    

    通过做array2 = array1; 您正在将array1对象分配给array2变量。 所以修改array2将修改相关的对象,即array1


    因为你通过引用array1传递给array2 。 你需要做一个副本,如:

    array2 = new Array(array1);
    
    链接地址: http://www.djcxy.com/p/20989.html

    上一篇: JavaScript array assign issue

    下一篇: Function that modifies function argument and persists