Arrays as3数组匹配数组中任意位置的数字,并在同一行上返回该数字和值

Arrays as3数组匹配数组中任意位置的数字,并在同一行上返回该数字和值,arrays,actionscript-3,Arrays,Actionscript 3,以下是阵列: var level:Array = new Array( 5 ); //there are five rows level[0] = [0.01, 0.6116, 0.001000, 206.14, 0.00, 2375.3, 0.00, 2501.4, 0.0000, 9.1562] level[1] = [5, 0.8721, 0.001000, 147.12, 20.97, 2382.3, 20.98, 2510.6, 0.0761, 9.0257] level[2]

以下是阵列:

var level:Array = new Array( 5 );    //there are five rows

level[0] = [0.01, 0.6116, 0.001000, 206.14, 0.00, 2375.3, 0.00, 2501.4, 0.0000, 9.1562]
level[1] = [5, 0.8721, 0.001000, 147.12, 20.97, 2382.3, 20.98, 2510.6, 0.0761, 9.0257]
level[2] = [10, 1.2276, 0.001000, 106.38, 42.00, 2389.2, 42.01, 2519.8, 0.1510, 8.9008]
level[3] = [15, 1.7051, 0.001001, 77.93, 62.99, 2396.1, 62.99, 2528.9, .02245, 8.7814]
level[4] = [20, 2.339, 0.001002, 57.79, 83.95, 2402.9, 83.96, 2538.1, 0.2966, 8.6672]
我想输入一个数字并找到该数字的匹配项,将行中的值返回到每个数字的特定字段中。例如,如果我在输入字段中输入数字10,我希望数字1.2276、0.00100、106.38和该行的其余部分输出这些值


我看到了太多的选择,不知道从哪里开始。谢谢。

使用一个简单的
循环

for (var i:int=0; i<level.length; i++) {
     if (level[i].indexOf(input) > -1) { // check array for index of input
         trace(level[i]);
         break; // stop loop because we're done
     }
}
for(vari:int=0;i-1){//检查数组中的输入索引
跟踪(级别[i]);
中断;//停止循环,因为我们完成了
}
}

使用一个简单的
循环

for (var i:int=0; i<level.length; i++) {
     if (level[i].indexOf(input) > -1) { // check array for index of input
         trace(level[i]);
         break; // stop loop because we're done
     }
}
for(vari:int=0;i-1){//检查数组中的输入索引
跟踪(级别[i]);
中断;//停止循环,因为我们完成了
}
}

我建议使用
字典,而不是
数组。通过这种方式,您可以将键分配给
数组
对象,并通过键访问数组

var level:Dictionary = new Dictionary();

level[0.01] = [0.6116, 0.001000, 206.14, 0.00, 2375.3, 0.00, 2501.4, 0.0000, 9.1562];
level[5] = [0.8721, 0.001000, 147.12, 20.97, 2382.3, 20.98, 2510.6, 0.0761, 9.0257];
level[10] = [1.2276, 0.001000, 106.38, 42.00, 2389.2, 42.01, 2519.8, 0.1510, 8.9008];
level[15] = [1.7051, 0.001001, 77.93, 62.99, 2396.1, 62.99, 2528.9, .02245, 8.7814];
level[20] = [2.339, 0.001002, 57.79, 83.95, 2402.9, 83.96, 2538.1, 0.2966, 8.6672];

function getArrayByInputText(txt:String):Array {
    return level[txt];
}

trace(getArrayByInputText("10")); // [1.2276, 0.001000, 106.38, 42.00, 2389.2, 42.01, 2519.8, 0.1510, 8.9008];

我建议使用
字典
而不是
数组
。通过这种方式,您可以将键分配给
数组
对象,并通过键访问数组

var level:Dictionary = new Dictionary();

level[0.01] = [0.6116, 0.001000, 206.14, 0.00, 2375.3, 0.00, 2501.4, 0.0000, 9.1562];
level[5] = [0.8721, 0.001000, 147.12, 20.97, 2382.3, 20.98, 2510.6, 0.0761, 9.0257];
level[10] = [1.2276, 0.001000, 106.38, 42.00, 2389.2, 42.01, 2519.8, 0.1510, 8.9008];
level[15] = [1.7051, 0.001001, 77.93, 62.99, 2396.1, 62.99, 2528.9, .02245, 8.7814];
level[20] = [2.339, 0.001002, 57.79, 83.95, 2402.9, 83.96, 2538.1, 0.2966, 8.6672];

function getArrayByInputText(txt:String):Array {
    return level[txt];
}

trace(getArrayByInputText("10")); // [1.2276, 0.001000, 106.38, 42.00, 2389.2, 42.01, 2519.8, 0.1510, 8.9008];

数据结构是最终的还是可以修改?当然,可以更改。我愿意接受所有建议。数据结构是最终的还是您可以修改它?当然,它可以更改。我愿意接受所有建议。这将显示数组中的所有值。如何仅显示级别3上的值?您是指
级别[I]
中的值还是所有其他值,而不是您的输入?该循环将递归地遍历
级别
数组中的每个数组,并搜索您的输入。一旦找到,它将停止循环。我希望输入值与在同一行上找到的值一起返回。输入值可以是数组中的任意数字。输入值匹配的行上的所有值,我想输出这些数字。为了工作模型的目的,我已经将其转换为JavaScript示例。也许你能更好地解释这个问题?看来会有用的。看看这个阵列。我输入一个42。我希望该行上的所有数字只与42.00一起输出。我正在学习,我确信我的问题不清楚。这有用吗?10,1.2276,0.001000,106.38,42.00,2389.2,42.01,2519.8,0.1510,8.9008因为42.00与此级别匹配,所以它会输出此行的数字。这会显示数组中的所有值。如何仅显示级别3上的值?您是指
级别[I]
中的值还是所有其他值,而不是您的输入?该循环将递归地遍历
级别
数组中的每个数组,并搜索您的输入。一旦找到,它将停止循环。我希望输入值与在同一行上找到的值一起返回。输入值可以是数组中的任意数字。输入值匹配的行上的所有值,我想输出这些数字。为了工作模型的目的,我已经将其转换为JavaScript示例。也许你能更好地解释这个问题?看来会有用的。看看这个阵列。我输入一个42。我希望该行上的所有数字只与42.00一起输出。我正在学习,我确信我的问题不清楚。这有用吗?10,1.2276,0.001000,106.38,42.00,2389.2,42.01,2519.8,0.1510,8.9008因为42.00与此级别匹配,所以它输出此行的数字。