Actionscript 3 如何在actionscript 3中实现createuniqueCopy()?
我偶然发现了这样一条线索: PHP有一个内置函数,可以执行以下操作:Actionscript 3 如何在actionscript 3中实现createuniqueCopy()?,actionscript-3,Actionscript 3,我偶然发现了这样一条线索: PHP有一个内置函数,可以执行以下操作: array array_merge ( array $array1 [, array $array2 [, array $... ]] ) 似乎我需要包含as3corelib库才能使用createuniqueCopy 如何实现createuniqueCopy以减小swf的大小?1)您不需要使用整个库,只需导入arrayUtils类即可: 然后使用以下功能: var c:Array=ArrayUtil.create
array array_merge ( array $array1 [, array $array2 [, array $... ]] )
似乎我需要包含as3corelib库才能使用createuniqueCopy
如何实现createuniqueCopy
以减小swf的大小?1)您不需要使用整个库,只需导入arrayUtils类即可:
然后使用以下功能:
var c:Array=ArrayUtil.createUniqueCopy(a1.concat(a2))
- 这将排除重复项,以便与重复项具有完全相同的值,只需删除: if(ArrayUtil.arrayContainsValue(newArray,item)){ 持续 }
我鼓励您使用ArrayUtil作为as3core库的一部分。该文件只有5kb,并且只包含几个函数,因此非常轻量级。如果导入它,Flash足够智能,只包含它需要的文件,因此它不会从整个as3core库中引入所有代码 另一方面,如果您真的想创建自己的,请执行以下操作:
var a1:Array = ["a", "b", "c"];
var a2:Array = ["b", "j", "e"];
var a3:Array = a1.concat(a2);
a3 = uniqueArray(a3);
trace(a3); // a,b,c,j,e
function uniqueArray(a:Array):Array {
var newA:Array = [];
for (var i:int = 0; i < a.length; i++) {
if(newA.indexOf(a[i]) === -1) newA.push(a[i]);
}
return newA;
}
很抱歉,我对这个问题感到困惑,您想知道如何在不使用as3corelib的情况下实现库还是执行createuniqueCopy?@Saad,我想知道如何在不使用as3corelib的情况下实现createuniqueCopy。
var a1:Object = {};
var a2:Object = {};
a1["a"] = "the a";
a1["b"] = "the b";
a2["b"] = "the b2";
a2["c"] = "the c";
var a3:Object = uniqueArray(a1, a2);
for each(var i:* in a3) {
trace(i);
}
// outputs [the a, the b, the c]
// 'the b2' is omitted because 'b' key already exists
function uniqueArray(a1:Object, a2:Object):Object {
var newA:Object = {};
for(var i:String in a1) {
newA[i] = a1[i];
}
for(var j:String in a2) {
if(newA[j] === undefined) newA[j] = a2[j];
}
return newA;
}