我有一个输入字段和一个数字列表(10,43,98,10,45,23,10)
。我想将其转换为Array
,因此我可以将此数组用于多个函数。请帮助我指出正确的方向。
var a:Array = Array[];
a.push(_numInput.text);//this is my input field name
//trace(a);
var l:Number = 0;
for(var i:uint=0; i< a.length; i++)
{
var t1:Number = l += a[i];
var t2:Number = a.length;
var t3:Number = t1 / t2;
}
trace(t3);
//when i trace the _numInput.text the number show up but i can not use them.
答案 0 :(得分:0)
您需要将String
投射到Integer
!!
a.push(int(_numInput.text));
编辑:Ups,似乎我不太明白预编辑的问题
答案 1 :(得分:0)
使用split();
将此类字符串转换为数组。
var a:Array = _numInput.text.split(",");
答案 2 :(得分:0)
如果你的文字字段中有逗号分隔的数字,那么以下是获取array
的最简单方法,
var str = "10,43,98,10,45,23,10";
function convertTextFieldStringToArray(s:String):Array
{
var a = s.split(",");
return a;
}
trace(convertTextFieldStringToArray(str));
答案 3 :(得分:0)
拆分字符串只会创建一个字符串数组
那么你需要做的是将该数组转换为int
public function mapIt(obj:Object, index:int, arr:Array):int {
// validation might be a good idea here since this is user imputed text.
return int(obj) // convert to int
}
// your input string
var str:String = "10,43,98,10,45,23,10";
// convert string to array of strings
var arrayOfStrings:Array = str.split(",")
trace( typeof arrayOfStrings[0])// verify first element is a string
trace( arrayOfStrings[0] + arrayOfStrings[0]) // verify string concatination
var arrayOfInt:Array = arrayOfStrings.map(mapIt) // map each element
trace( typeof arrayOfInt[0]) // verify first element is an int
trace( arrayOfInt[0] + arrayOfInt[0]) // verify numbers are correctly added