Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   str.split(',') = array of number (http://www.flasher.ru/forum/showthread.php?t=78132)

__i 10.04.2006 11:48

str.split(',') = array of number
 
Как сделать чтоб сплит мне вернул сразу массив чисел, а не строк ?
Или как это сделать наиболее оптимально с наименьшили затратами процессорного времени?.

в строке приходит огромный массив чисел разделленых запятой (этак тыщь 30),
просто делать потом циклов array[i] = Number(array[i]) довольно таки ресурсоемко %(.
благо мне все равно приходиться пробегать циклом по этим числам и я туда этот Number вставил.

Нужно именно числа т.к. потом с ними производиться множество операций (например суммирование, а флеш по умолчанию начинает суммировать их как строки %(( ). а вставлять каждый раз num=Number(array[i])+Number(array[i]) не выход

Homo Sapiens 10.04.2006 11:53

А что, так принципиально переводить в числа?

__i 10.04.2006 11:58

а ты попробуй
Код:

str = '1,2,3,4,56,7'
my_ar = str.split(',')
s = new Number(0)
for (i=0; i< my_ar.length; i++){
s+=my_ar[i];
}
trace(s)


AxelRB 10.04.2006 12:07

Скорее всего никак.
С преобразованием типов во флэше вообще какой-то геморрой. Никогда не знаешь какой тип тебе дадут. Мой пример:
Код:

class .... {
...
private var __width:Number;
private var __height:Number;
public function onResize() {
  var W:Number = (__width==0)?__mc.getDefaultWidth():(__width<0)?Stage.width+Number(__width):__width;
  var H:Number = (__height==0)?__mc.getDefaultHeight():(__height<0)?Stage.height+Number(__height):__height;
  ...
}
}

Пока не поставил принудитально преобразование в число, временами выдавало NaN !!! Предварительно значение присваивается всегда, поэтому дело не в undefined.
Короче, я так и не понял в чем прикол. Полным перебором искал, как исправить глюк. Исправил. Но до сих пор не понял как.

__i 10.04.2006 12:09

2AxelRB по умолчанию флеш оперирует со всем как со строками , по этому у тебя получалось он считал строка + число = NaN %(

AxelRB 10.04.2006 12:12

Ну, так и сейчас в такой слечае строка+число, если он Stage.width как строку вопринимает. Но сейчас все работает...

Как-то все загадочно... Сделали б уж тогда эксплисит преобразования все. А то как-то...

Madasan 10.04.2006 12:40

Цитата:

Сообщение от __i
а вставлять каждый раз num=Number(array[i])+Number(array[i]) не выход

Но вставлять то все равно придется, то есть от преобразования никуда не денешься. А куда это преобразование вставлять - это уже по ситуации...


Часовой пояс GMT +4, время: 05:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.