as3: логическое значение из массива всегда является строкой (если _arr [2] == "true"), как ее преобразовать? - PullRequest
0 голосов
/ 21 февраля 2011

когда я получаю логическое значение из массива, оно всегда отображается в виде строки (true / false).

как я могу его преобразовать?

var _myNumber = 1;
var _myText = "HELLO WORLD!";

var _myArray:Array = new Array()
    _myArray.push(Boolean(Number(_myNumber))+"::"+_myText)


//now split _myArray to get the inside data:

var _splitArray:Array = _myArray.split("::"),

      trace(_splitArray[0]) // = true (but it's not a boolean value)

?

1 Ответ

2 голосов
/ 21 февраля 2011

Когда вы вводите логическое значение в массиве, вы конвертируете это в строку, объединяя ее с другими строками. Это на самом деле вызовет toString () из Boolean. Теперь toString () из Boolean возвращает «true» или «false». Вы можете преобразовать это обратно в логическое значение, используя это.

var b:Boolean = (_splitArray[0] == "true") ? true : false;

РЕДАКТИРОВАТЬ: Как указано в комментарии, этого достаточно, чтобы написать.

var b:Boolean = _splitArray[0] == "true";
...