如何制作1个具有第一个数组&的键的数组?它的值是Actionscript 3.0中第二个数组的值?
下面是我的[错误]代码。包导入遗漏了。
public class myPages extends Sprite {
protected var pageNames:Array = [];
protected var pageLayoutNo:Array = [];
private var pageLayoutNames:Object = new Object();
public function assignNamesLayouts {
//all the names of the pages
for(i=0; i<totalPages; i++) {
var pageMc:MovieClip=new MovieClip();
pageMc.name = menu.config.pages.page[i].@name;
pageNames[i]= pageMc.name;
}
//all layout numbers
for(i=0; i<totalPages; i++) {
pageLayoutNo[i] = menu.config.layoutNum.layNum[i];
}
setNames(pageNames);
setPLNo(pageLayoutNo);
setLayoutNames(pageLayoutNo,pageNames);
}
protected function setNames(a:Array) {
pageNames = a;
}
protected function setPLNo(a:Array) {
pageLayoutNo = a;
}
protected function setLayoutNames(a:Array, b:Array) {
var maps:Object = new Object();
maps.no = a;
maps.nm = b;
for each(var k:int in a) {
maps[k] = b;
}
}
}
谢谢。
答案 0 :(得分:0)
字典确实是你想要的,但你可以通过创建一个像这样的对象数组来实现:
var newArray=combineArrays("name", arr1,"number",arr2);
function combineArrays(name1, arr1,name2, arr2){
var newArr=new Array();
for(var i<arr1){
var obj=new Object();
obj[name1]=arr1[i];
obj[name2]=arr2[i];
newArr.push(obj);
}
}
然后,您可以搜索任一对象的对象名称或值。
答案 1 :(得分:0)
我同意@Vesper。 associative array
的最近解决方案是Dictionary。我还会为你添加一些想法。如果您的集合将键作为字符串,则可以使用简单的对象:
var keyName: String = "key1";
var anotherKey: String = "key2";
var collection: Object = {};
collection[keyName] = new MovieClip();
collection[anotherKey] = new Sprite();
trace(collection[keyName]);
如果你想使用2个数组:一个用于键,另一个用于值,你需要几个函数(用键放置对象,按键获取对象,按值获取对象,按键删除对象等)到管理它们,因为数组中的索引必须相同。