当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级考试指导:javascript:复制数组
发布时间:2010/3/24 16:34:16 来源:城市学习网 编辑:admin

  javascript:复制数组
  不少人可能直接就用等号进行赋值了:
  var array1 = new Array("1","2","3");
  var array2;
  array2 = array1;
  array1.length = 0;
  alert(array2); //返回为空
  这种做法是错的,因为javascript分原始类型与引用类型(与java、c#类似)。Array是引用类
  型。array2得到的是引用,所以对array1的修改会影响到array2。
  可使用slice()进行复制,因为slice()返回也是数组。
  var array1 = new Array("1","2","3");
  var array2;
  array2 = array1.slice(0);
  array1.length = 0;
  alert(array2); //返回1、2、3
  注意concat()返回的并不是调用函数的Array,而是一个新的Array,所以可以利用这一点进行复制。
  var array1 = new Array("1","2","3");
  var array2;
  array2 = array1.concat();
  array1.length = 0;
  alert(array2); //返回1、2、3
  Code
  !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"
  titleArray Test/title
  script type="text/javascript"
  var array1;
  var array2;
  function clone1() {
  array1 = new Array("1","2","3");
  array2 = array1;
  array1.length = 0;
  alert(array2);
  }
  function clone2() {
  array1 = new Array("1","2","3");
  array2 = array1.slice(0);
  array1.length = 0;
  alert(array2);
  }
  function clone3() {
  array1 = new Array("1","2","3");
  array2 = array1.concat();
  array1.length = 0;
  alert(array2);
  }
  /script
  /head
  body
  input type="button" value="clone1" onclick="clone1()" /br /
  input type="button" value="clone2" onclick="clone2()" /br /
  input type="button" value="clone3" onclick="clone3()" /br /
  /body
  /html
  在IE8及FF3.0下均通过测试
  :

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved