zoukankan      html  css  js  c++  java
  • 复制独立数组的方法

        由于数组在js中是复合类型,直接赋值是用传址方式而不是传值方式,所以直接赋值的话,并不会“复制”一份独立的数组出来,而是将原数组的地址,传给了另一个变量而已。所以,我们需要用特殊的方式来复制数组,将数组中的元素,一个一个提取出来赋值。

    =====================================

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>阿当制作</title>
    </head>

    <body>
    <script type="text/javascript">
    var a = [1,2,3];
    var b = a;
    b[0] = 4;

    var c = [1,2,3];
    var d = [];
    for(var p in c){
    d[p] = c[p];
    }
    d[0] = 4;
    alert("a:"+a[0]+","+a[1]+","+a[2]+"\n"+"b:"+b[0]+","+b[1]+","+b[2]+"\n"+"c:"+c[0]+","+c[1]+","+c[2]+"\n"+"d:"+d[0]+","+d[1]+","+d[2]);
    </script>
    </body>
    </html>

    ====================================

    其实除了这种方法,还有一种更简单的方法,就是调用数组的slice()方法。slice()方法是截取当前的数组,返回一个“新”数组。如果slice()方法不传参,就会将数组不做截取的返回一个“新”数组回去。

    ====================================

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>阿当制作</title>
    </head>

    <body>
    <script type="text/javascript">
    var a = [1,2,3];
    var b = a.slice();
    b[0] = 4;
    alert("a:"+a[0]+","+a[1]+","+a[2]+"\nb:"+b[0]+","+b[1]+","+b[2]);
    </script>
    </body>
    </html>

  • 相关阅读:
    CentOS75 安装 telnet 进行使用.
    Windows 创建计划任务 实现自动同步文件.
    qemu-img.exe 工具 简介
    中建项目环境迁移说明
    服务器内存最大大小限制
    bzip2 以及 tar 压缩/解压缩/.打包等工具软件
    Ubuntu18.04 安装后的简单实用设置[未完成]
    oracle 启动监听报错TNS-12547: TNS:lost contact
    Linux审计sudo
    OPENVAS运行
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426999.html
Copyright © 2011-2022 走看看