如何在二维数组

时间:2015-07-16 11:07:53

标签: actionscript-3 flash multidimensional-array

我想在代码中描述我的问题:

//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);

现在看起来像这样:

enter image description here

那么我怎样才能获得每一个价值? 我如何设置Dependence1或Dependence2以及如何获取ID列中的每个单个ID。例如,我想知道ID = 0是否是第1行中ID的一部分?

提前谢谢

2 个答案:

答案 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是更好的选择。