Как разбить число на массив?


origami1024, в полтора раза
jsPerf

origami1024 @origami1024

origami1024 @origami1024
went out for a night walk
Курсы javascript
я например хочу получить только число 2, как это сделать?
31.08.2010, 10:55
Регистрация: 19.02.2010
Сообщений: 295
var а = 1020; var b = a+''; alert(b.substring(2,0));
31.08.2010, 11:00
Интересующийся
Регистрация: 20.08.2010
Сообщений: 21
хех, я тут порылся нашел интересный метод split, с помощью него можно это сделать. ток остается понять как )
31.08.2010, 11:05
Регистрация: 30.03.2010
Сообщений: 1,813
var а = 1020; var b = String(а).split(""); alert(b[2]); alert(b[0]);
__________________
.
31.08.2010, 11:08
Интересующийся
Регистрация: 20.08.2010
Сообщений: 21
о! спасибо гуру!! ты оказал не заменимую помощь! благодарю за опыт
31.08.2010, 11:58
Регистрация: 04.04.2008
Сообщений: 6,245
*facepalm*
это же простейшая задача при изучении любого языка программирования, и решается она без приведения к строке.
alert( (1020/10)%10 );
31.08.2010, 12:07
Регистрация: 30.03.2010
Сообщений: 1,813
Gvozd,
так масив же мы из этого не получим.
И кстати как твоим способом получить допустим 4 элемент
__________________
.
Последний раз редактировалось Skipp, 31.08.2010 в 12:13 .
31.08.2010, 12:36
Рассеянный профессор
Регистрация: 06.04.2009
Сообщений: 2,379
alert( (1020/1)%10 );
Только еще Math.floor надо, а то неточные вычисления.
Последний раз редактировалось Riim, 31.08.2010 в 12:43 .
31.08.2010, 12:38
Регистрация: 04.04.2008
Сообщений: 6,245
спокойно.
к тому же насколько я понял ТС-а, ему не столько массив нужен, сколько конкретные разряды числа
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);
Как разбить число на массив js
Есть задача, я ее немного визуализировал, вводится число натуральное, и необходимо посчитать сумму чисел кратные 3 и 5 которые меньше введённого числа. Если число одновременно кратно и 3 и 5 то считаем его 1 раз. Можно какие-то идеи по реализации?)

Лучший ответ
В условии кратные 3 и 5, а не 3 ИЛИ 5. И и ИЛИ — две большие разницы, как говорят в Одессе
let arr = new Array(+prompt(‘n’));
for (var i = 0; i < arr.length; i++) <
arr[i] = i
>;
let result = arr.filter(n => !(n % 3) && !(n % 5));
let sum = result.reduce((function (acc,i) < return acc + i >),0);
console.log(sum)
VIktorУченик (32) 1 год назад
а можешь объяснить про фильтер и редюс как работает тут?
Молот Шотландцев Высший разум (300930) filter отсеивает из массива то что не соответсвует условию, reduce берет переменную которая играет роль «аккумулятора» и плюсует к ней значения массива. Если у этой переменной будет значение 0 — в итоге получится сумма
Метод split
Метод split разбивает строки в массив по указанному в первом параметре разделителю. Если он не задан — вернется вся строка. Если он задан как пустые кавычки, то каждый символ строки попадет в отдельный элемент массива. Вторым необязательным параметром можно указать максимальное количество элементов в получившемся массиве.
Синтаксис
строка.split([разделитель], [максимальное количество элементов]);
Пример
Пусть дана некоторая строка с дефисами. Давайте разобьем эту строку в массив по разделителю ‘-‘ :
let str = ‘ab-cd-ef’; let arr = str.split(‘-‘); console.log(arr);
Результат выполнения кода:
Пример
Давайте опять разобьем строку по разделителю ‘-‘ , однако вторым параметром укажем максимальное количество элементов в получившемся массиве, например, 2 . В этом случае в массив запишется только 2 элемента:
let str = ‘ab-cd-ef’; let arr = str.split(‘-‘, 2); console.log(arr);
Результат выполнения кода:
Пример
Давайте каждый символ строки запишем в отдельный элемент массива:
let str = ‘abcde’; let arr = str.split(»); console.log(arr);
Результат выполнения кода:
Пример
Давайте первые 3 символа строки запишем в отдельные элементы массива:
let str = ‘abcde’; let arr = str.split(», 3); console.log(arr);
Результат выполнения кода:
Пример
Давайте с помощью split разобьем строку с числами. Обратите внимание на то, что в результате получится массив строк, а не массив чисел:
let str = ‘12345’; let arr = str.split(»); console.log(arr);
Результат выполнения кода:
Пример . Применение
Давайте перевернем символы строки в обратном порядке. Для этого разобьем строку в массив с помощью split по разделителю » (это разместит каждый символ строки в отдельный элемент массива), перевернем этот массив с помощью reverse и затем сольем перевернутый массив обратно с помощью join :
let str = ‘123456789’; let arr1 = str.split(»); let arr2 = arr1.reverse(); let res = arr2.join(»); console.log(res);
Результат выполнения кода:
Пример . Применение
Упростим решение предыдущей задачи — сольем все команды в цепочку:
let str = ‘123456789’; let res = str.split(»).reverse().join(»); console.log(res);
Результат выполнения кода:
Пример . Применение
Дана строка с цифрами. Найдем сумму цифр из этой строки. Для этого разобьем строку в массив, а затем переберем этот массив и найдем его сумму. Нас ждет подвох: split возвращает строки, поэтому при суммировании преобразуем эти цифры-строки в настоящие числа с помощью Number :
let str = ‘12345’; let arr = str.split(»); let sum = 0; for (let i = 0; i < arr.length; i++) < sum += Number(arr[i]); >console.log(sum);
Результат выполнения кода:
Пример . Применение
Дано число. Давайте запишем каждую цифру этого числа в отдельный элемент массива. Тут есть подвох — split применяется только к строкам, а у нас число. Преобразуем вначале число к строке с помощью String , а затем применим split :
let num = 12345; let str = String(num); let arr = str.split(»); console.log(arr);
Результат выполнения кода:
Смотрите также
- метод join ,
который сливает элементы массива в строку - метод split ,
который разбивает строку по регулярке - метод reverse ,
который изменяет порядок элементов в массиве на обратный - свойство length ,
которое позволяет узнать длину строки