`

AS3数组复制

 
阅读更多

在actionscrip3.0中是没有提供内置的数组克隆的方法的,摸索了一下,如下得论:

1.浅层复制的话,可以使用Array类的concat()或者slice()的无参方法来创建一个新数组,如下:
    var bb:ArrayCollection = new ArrayCollection();
    var a:Dictionary = new Dictionary();
    a.name = "wodesign";
    a.age = 25;
    bb.addItem(a);
    bb.addItem("b");
    bb.addItem("c");
    bb.addItem("d");
    aa = new ArrayCollection(bb.source.concat());
    bb.removeAll();
删除bb内容后,aa保存了bb的内容。

2.深层复制,这样可以保证,将数组所有的内容,包括指向也进行复制,如下:
class User{
   public var id:int;
   public var name:String;
   public function User(id:int,name:String)
   {
       id=id;
       name = name;
    };
}

var user:User = new User(12,"wodesign");
var aa:Array = new Array();
aa.push(user);
// 开始做复制动作了哈
var byteArr:ByteArray = new ByteArray();
byteArr.writeObject(aa);
byteArr.position = 0;
var bb:Array = byteArray.readObject();
// 改值了哈
user.id = 28;
trace(aa[0].id);            // 28;
trace(bb[0].id);            // 12;

OK,还有其它更好的方法吗,分享吧

分享到:
评论

相关推荐

    python numpy数组复制使用实例解析

    这篇文章主要介绍了python numpy数组复制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用python时我们经常会处理数组,有的时候是复制有的...

    as3比较详尽的工具类

    ArrayUtil.as ---------------------- 数组辅助功能 setFrameout.as ---------------------- 延迟(帧)函数 clearFrameout.as ---------------------- 清除延迟函数 delayOut.as ---------------------- 延迟...

    javascript中数组深拷贝途径及对象数组深拷贝

    在js当中,我们常常遇到数组复制的的情况,许多人一般都会使用“=”来直接把一个数组赋值给一个变量,如: var a=[1,2,3]; var b=a; console.log(b); //输出的是1,2,3 a[2]=0; console.log(b); //输出的是1,2,0 ...

    as3运行时错误中文说明

    as3运行时错误中文说明 1000 系统内存不足。 系统可用内存无法满足 Flash Player 编译代码的需要。请关闭系统上正在运行的某些应用程序或进程。 1001 未实现方法 _。 1002 Number.toPrecision 的范围是 1 至 21...

    php学习笔记 数组遍历实现代码

    复制代码 代码如下: <?php /* 数组的遍历 * * 1.使用for语句循环遍历数组 * 1....每一次循环都会将数组中的元素分别赋值给后面变量 * * foreach(数组变量 as 下标变量=> 值变量){ * } * * * 3.whil

    将二维数组转为一维数组的2种方法

    如何将下面的二维数组转为一维数组。 复制代码 代码如下:$msg = array( ...复制代码 代码如下:foreach($msg as $k => $v){ $ids[] = $id; $names[] = $name; } 第二种方法: 复制代码 代码如下:$ids = array_column

    javascript数组去掉重复

    我们给数组原型上面添加去重的方法distinct,用第一种很容易想到的方法来实现,当然也是很笨很直接的,把这个数组复制一份然后循环两个数组,对比当前值与后面所有的值是否相等,如果与后面所有值都不等则把该值存到...

    javascript数组与php数组的地址传递及值传递用法实例

    本文实例讲述了...复制代码 代码如下:<?php $arr = array(3,9,4); function test($arr){  $arr[0] = 30; } test($arr); foreach($arr as $val){  echo $val.” “; } ?> [removed] var myarr = [343,90

    基于numpy中数组元素的切片复制方法

    import numpy as np arr1 = np.arange(10) print(arr1) slice_data = arr1[3:5] print(slice_data) slice_data[0] = 123 print(slice_data) print(arr1) 类似的代码之前应用过,简单看了一下numpy中的数组切片。 ...

    PHP二维数组的去重问题解析

    下面的函数可以用于二维数组: 复制代码 代码如下: //二维数组去掉重复值 function array_unique_fb($array2D) { foreach ($array2D as $v) { $v = join(“,”,$v); //降维,也可以用implode,将一维数组转换为用逗号...

    php中将数组存到文件里的实现代码

    (实际中有用到把数组存在到文件中的功能,不过分享的代码跟实际应用中的有点不同) 复制代码 代码如下: <?php function cacheArr(&$data){ if(!$data)throw new Exception(‘数组不能为空’); foreach($GLOBALS...

    Javascript 复制数组实现代码

    一、 错误实现 不少人可能直接就用等号进行赋值了: 代码如下: var array1 = new Array(“1″,”2″,”3”);... 二、 使用slice() 可使用slice()进行复制,因为slice()返回也是数组。 代码如下: var array1 = ne

    php 删除数组元素

    复制代码 代码如下://删除数组中的一个元素 function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value($arr[$key], $var); } else { $value = ...

    php 判断数组是几维数组

    复制代码 代码如下:<?php/** * 返回数组的维度 * @param [type] $arr [description] * @return [type] [description] */function arrayLevel($arr){ $al = array(0); function aL($arr,&$al,$level=0){ ...

    PHP数组无限分级数据的层级化处理代码

    复制代码 代码如下:/** * 创建父节点树形数组 * 参数 * $ar 数组,邻接列表方式组织的数据 * $id 数组中作为主键的下标或关联键名 * $pid 数组中作为父键的下标或关联键名 * 返回 多维数组 **/function find_...

    Javascript数组Array方法解读

    浅复制一份当前数组,并把接收到的参数附加到新数组的末尾。原数组不改变。 语法 array.concat(value1, value2, …, valueN) 参数为需要合并的数组或非数组值 var arr1 = [1, 2, 3]; var obj = {animal : 'monkey'}...

    PHP 数组遍历方法大全(foreach,list,each)

    下面介绍PHP中遍历关联数组的三种方法: 方法1:foreach 复制代码 代码如下: <?php $sports = array( ‘football’ => ‘good’, ‘swimming’ => ‘very well’, ‘running’ => ‘not good’); foreach ($...

    php数组中包含中文的排序方法

    复制代码 代码如下:function utf8_array_asort(&$array) {if(!isset($array) || !is_array($array)) { return false;}foreach($array as $k=>$v) { $array[$k] = iconv(‘UTF-8’, ‘GB2312’,$v);}asort($array);...

    PHP 多维数组排序(usort,uasort)

    复制代码 代码如下: <?php //定义多维数组 $a = array( array(“sky”, “blue”), array(“apple”, “red”), array(“tree”, “green”)); //自定义数组比较函数,按数组的第二个元素进行比较

Global site tag (gtag.js) - Google Analytics