Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разбить число на миссив, как ? (https://javascript.ru/forum/misc/11561-razbit-chislo-na-missiv-kak.html)

Bogdan808 31.08.2010 10:51

Разбить число на миссив, как ?
 
Люди кто может помочь? никак не разберу как мне число разбить на массив?
т.е. У меня есть число

var а = 1020;

я например хочу получить только число 2, как это сделать?

DooMer 31.08.2010 10:55

var а = 1020;
var b = a+'';
alert(b.substring(2,0));

както так

Bogdan808 31.08.2010 11:00

хех, я тут порылся нашел интересный метод split, с помощью него можно это сделать... ток остается понять как )

Skipp 31.08.2010 11:05

var а = 1020;
var b = String(а).split("");
alert(b[2]);
alert(b[0]);

Bogdan808 31.08.2010 11:08

о! спасибо гуру!! ты оказал не заменимую помощь! благодарю за опыт

Gvozd 31.08.2010 11:58

*facepalm*
это же простейшая задача при изучении любого языка программирования, и решается она без приведения к строке.
alert( (1020/10)%10 );

Skipp 31.08.2010 12:07

Gvozd,
так масив же мы из этого не получим.

И кстати как твоим способом получить допустим 4 элемент

Riim 31.08.2010 12:36

Цитата:

Сообщение от Skipp
И кстати как твоим способом получить допустим 4 элемент

alert( (1020/1)%10 );

Только еще Math.floor надо, а то неточные вычисления.

Gvozd 31.08.2010 12:38

Цитата:

Сообщение от Skipp
так масив же мы из этого не получим.

спокойно.
к тому же насколько я понял ТС-а, ему не столько массив нужен, сколько конкретные разряды числа
var num = 2345;
var arr=[];
for(var temp = num;Math.round(temp)!=0;temp/=10,temp = Math.floor(temp)){
arr.unshift(temp%10);
}
alert(arr);

Цитата:

Сообщение от Skipp
И кстати как твоим способом получить допустим 4 элемент

а какая с ним проблема?
Цитата:

Сообщение от Riim
Только еще Math.round надо, а то неточные вычисления.

спасибо, забыл об этом

Skipp 31.08.2010 12:39

Riim,
сори не то спросил
alert( Math.round((2345/1)%10) );
вот тут третий получить как?

Skipp 31.08.2010 12:41

Gvozd,
а теперь поставьте число 2345
или вообще любое число где есть цифра 4, а за ней следует 5

exec 31.08.2010 12:47

Цитата:

alert( Math.round((2345/1)%10) );
вот тут третий получить как?
var a = 2345;
alert( ~~(a / 10) % 10 );

Skipp 31.08.2010 12:53

exec,
придирок нет=)

Gvozd 31.08.2010 13:59

Цитата:

Сообщение от Skipp
Gvozd,
а теперь поставьте число 2345
или вообще любое число где есть цифра 4, а за ней следует 5

обновил код

рони 31.08.2010 15:38

вариант ))))
for (var temp = 2345, arr = []; temp;) {
    arr.unshift(temp % 10);
    temp = (temp - temp % 10) / 10
};
alert(arr);

JsLoveR 31.08.2010 19:15

for(var i=1,mass=[],number=123456789,temp=0;true;i*=10) {
	temp=parseInt((number/i)%10);
	if(temp==0) {
		break;
	}
	mass.unshift(temp);
}    
alert(mass);

micscr 31.08.2010 19:48

:D

subzey 31.08.2010 20:21

А вот и мой вариант
var number = 54321;
alert(/(.)/.constructor(("India is the greatest country!").replace(/(.)/g,'(.)?'),'g').exec(number)[2]) /* 4 */

:D

JsLoveR 31.08.2010 20:26

subzey, гг )

inGray 31.08.2010 22:12

subzey,
Жжошь ))

Suharik 01.09.2010 18:19

http://locmankvartir.ru/js.html

Мой первый скрипт на js )) как раз по теме


Часовой пояс GMT +3, время: 21:28.