Перейти к содержимому

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

  • автор:

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

origami1024

5c7989f335b32940353859.png

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

origami1024

origami1024 @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 ,
    которое позволяет узнать длину строки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *