AS3 - 如果没有元素,数组的长度是多少?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AS3 - 如果没有元素,数组的长度是多少?相关的知识,希望对你有一定的参考价值。

我有一个数组连接到一个名为myTextbox的输入文本框。我们称之为数组myArray。代码看起来像这样:

var myArray:Array = myTextbox.text.split("|");

后来,我必须得到myArray的长度。如果myTextbox是空的,那么myArray的长度是多少?

我正在跟踪长度,但是当它为空时它表示1,而当它有一个元素时它表示1。我认为这是一个错误。有人可以回答我的问题吗?

答案

“如果myTextbox是空的,myArray的长度是多少?”

检查String的split选项下的文档:

“如果delimiter参数未定义... 整个字符串放在返回数组的第一个元素([0])中。“

返回整个字符串真好。你的困惑在于处理空字符串的返回。数组的长度为1,因为有些东西被返回并放在那里,但如果你检查你认为你什么也没找到,因为它是一个像""这样的空字符串......

测试1 :(包含内容的字符串)

myTextbox.text = "hello world";

var myArray:Array = myTextbox.text.split("|");

trace("myArray length       : " + myArray.length);
trace("myArray [0]          : " + myArray[0] );
trace("myArray [0] as Int   : " + int(myArray[0]) );

这使得"hello world"成为第一个元素(在[0]),因为字符串中没有"|"作为分隔符...

myArray len        : 1
myArray [0]        : hello world
myArray [0] as Int : 0

测试2 :(空字符串)

myTextbox.text = "";

var myArray:Array = myTextbox.text.split("|");

trace("myArray length       : " + myArray.length);
trace("myArray [0]          : " + myArray[0] );
trace("myArray [0] as Int   : " + int(myArray[0]) );

这给了空""作为第一个元素(在[0]),因为字符串中没有"|"作为分隔符,整个空(零长度)字符串现在位于[0] ...

myArray length      : 1
myArray [0]         : 
myArray [0] as Int  : 0

以上是关于AS3 - 如果没有元素,数组的长度是多少?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何计算一个数组占内存多少空间

JS 数组中元素的长度最大是多少?能设置吗?

ActionScript 3 as3中没有固定长度的数组

as3中没有固定长度的数组

C语言中如何计算一个数组占内存多少空间

如何在AS3中向数组添加元素?