我想在代码中描述我的问题:
//Master-Array
var dependenceArray:Array = new Array();
//Array for IDs
var idArray:Array = new Array(1,3,5,6,7);
//Array with IDs and dependeces
var rowArray:Array = new Array(idArray,"dependence1","dependence2");
dependenceArray.push(rowArray)
//Next pair
idArray = new Array(0,1,2,3);
rowArray = new Array(idArray,"dependence1","dependence2");
dependenceArray.push(rowArray);
现在看起来像这样:
那么我怎样才能获得每一个价值? 我如何设置Dependence1或Dependence2以及如何获取ID列中的每个单个ID。例如,我想知道ID = 0是否是第1行中ID的一部分?
提前谢谢
答案 0 :(得分:2)
您可以使用以下语法访问您的值列。
var val:String = dependenceArray[0][1]; // "Value1.0"
第一个括号访问该行,第二个括号访问该列。
要检查ID列是否包含值,请在第一列上使用.indexOf()方法。
var contains:int = (dependenceArray[0][0] as Array).indexOf(5); // returns 1
contains:int = (dependenceArray[0][1] as Array).indexOf(5); // returns -1
答案 1 :(得分:1)
您明确命名数组中的元素,并希望按给定名称标识它们。这就是为什么使用数组不是一个好的解决方案。
相反,每行使用一个对象。
//Master-Array
var dependenceArray:Array = []; // equivalent to new Array();
//Object with IDs and dependeces
var rowObject:Object = {ids:[1,3,5,6,7],dependencies:["Value 1.0", "Value 2.0"]};
dependenceArray.push(rowArray)
//Next pair
rowObject:Object = {ids:[0,1,2,3],dependencies:["Value 1.1", "Value 2.1"]};
dependenceArray.push(rowArray);
这允许更易读的代码,因为您可以使用属性的名称来访问它们:
trace(dependenceArray[0].ids);
正如您在上面所看到的,我使用了一个数组来表示ID和依赖项。一般来说,无论何时使用末尾带有数字的名称来区分它们,都应该使用数组。
我也使用数字的简写符号[]
。
结论: 你有很多行。这就是为什么使用数组存储所有行是个好主意。但是,每一行都有命名属性,这使得Object成为存储单行信息的更合适的选择。行的属性值再次列出(id列表和依赖列表),因此使用Array是更好的选择。