我如何 set/assign 二维数组中的数组

How can I set/assign an Array in a two dimensional 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);

现在看起来像这样:

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

提前致谢

可以使用以下语法访问您的值列。

var val:String = dependenceArray[0][1]; // "Value1.0"

第一个括号访问行,第二个括号访问列。

要检查 IDs 列是否包含值,请在第一列上使用 .indexOf() 方法。

var contains:int = (dependenceArray[0][0] as Array).indexOf(5); // returns 1
contains:int = (dependenceArray[0][1] as Array).indexOf(5); // returns -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 和依赖项使用了一个数组。一般来说,凡是使用末尾带数字的名字来区分,都应该用数组代替。

我也对数组使用 shorthand 符号 []

结论: 你有很多行。这就是为什么使用数组来存储所有行是个好主意。但是,每一行都有命名属性,这使得对象成为存储单行信息的更合适的选择。一行属性的值又是列表(一个 id 列表和一个依赖列表),所以使用 Array 是更好的选择。