AS3深拷贝数据对象(1)深拷贝基本数据类型
生活随笔
收集整理的這篇文章主要介紹了
AS3深拷贝数据对象(1)深拷贝基本数据类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Topic:有一個Array的實例arrS,其元素可能為String,Number或Array,將arrS深拷貝。
方法1:通過傳說中的“AS3隱藏特性——ByteArray.writeObject和readObject”進行操作,代碼如下:
var arrA:Array = [1, 2, 5]; var arrS:Array = [5, arrA, 9, 10]; var arrClone:Array; var nT:int = getTimer(); var bta:ByteArray = new ByteArray(); for (var i:int = 0; i < 100000; i++) { bta.length = 0; bta.writeObject(arrS); bta.position = 0; arrClone = bta.readObject(); } trace(getTimer() - nT);執行時間:average(452,447,460,456,464)=456ms
方法2:通過工具類進行拷貝,工具類代碼如下:
public class ArrayUtil {/***/public static function deepClone(arrS:Array):Array{var arrResult:Array = [];for each (var i:* in arrS) {if ( i is Array ){arrResult.push(deepClone(i));}else { arrResult.push(i); } } return arrResult; } }具體使用代碼如下:
var arrA:Array = [1, 2, 5]; var arrS:Array = [5, arrA, 9, 10]; var arrClone:Array; var nT:int = getTimer(); for (var i:int = 0; i < 100000; i++) {arrClone = ArrayUtil.deepClone(arrS); } trace(getTimer() - nT);執行時間:average(280,272,270,271,271)=273ms
轉載于:https://www.cnblogs.com/andytang555/p/4722323.html
總結
以上是生活随笔為你收集整理的AS3深拷贝数据对象(1)深拷贝基本数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用 Docker 部署一个基于 P
- 下一篇: Ubuntu 14.04 DNS 配置