Метод сплит на четвертой строчке не работает. Помечается в консоли красной чертой с крестиком в красном кружке. Ошибка Uncaught TypeError: j.split is not a function
функция принимает массив из чисел. Каждый элемент переделывает в строку
если число состоит из одной цифры, она переделывается в массив, потом в первом блоке ответвления получается строка, где первый символ, это ноль, потом цифра, из за которой сработал этот бок кода
К примеру, была 2, стало "02"
Почему сплит выдает ошибку и правильно ли написана фукнция переделывания массива из чисел в массив из строк и модифицированных одиночных чисел
function fun(argument12) {
--------for (var i = 0; argument12.length; i++) {
------------var j = argument12[i]
------------var a = String(j.split(""))
------------if (a[1] == undefined) {
----------------var t = String(a[0])
----------------var t1 = "0"
----------------t1 = t1 + t
----------------argument12[i] = t1
------------} else {
----------------argument12[i] = j
------------}
--------}
--------return argument12
}
JavaScript
Почему split не работает и правильно ли написана функция? javascript. Помогите, пожалуйста
Потому, что j - НЕ строка и метода split не имеет. Чтобы получить строку надо либо j.toString(), либо j + ''.
Не надо переусложнять. Требуется всего лишь приписать '0' слева к строковому представлению числа, если число меньше 10. Это делается в одну строчку:
return argument12.map(val => val.toString().padStart(2, '0'));
А если нужна поддержка старых браузеров, то:
return argument12.map(function(val) { return (val < 10 ? '0' : '') + val; });
Не надо переусложнять. Требуется всего лишь приписать '0' слева к строковому представлению числа, если число меньше 10. Это делается в одну строчку:
return argument12.map(val => val.toString().padStart(2, '0'));
А если нужна поддержка старых браузеров, то:
return argument12.map(function(val) { return (val < 10 ? '0' : '') + val; });
Сергей Клименко
forEach ничего не возвращает, если так хочется что-то вернуть, тогда лучше map
Функция же и так получает массив... Можно всё организовать прямо в цикле.
function fun( argument12 ) {
for( var i = 0; i < argument12.length; i++ ){
if( argument12[i] < 10 ){
argument12[i] = "0" + argument12[i];
}
}
return argument12;
}
Или, если надо все числа превратить в строки...
function fun( argument12 ) {
for( var i = 0; i < argument12.length; i++ ){
argument12[i] = ( (argument12[i] < 10) ? "0" : "" ) + argument12[i];
//Здесь сперва идет проверка.
//Если число меньше 10 - будет добавляться 0, иначе - пустая строка.
}
return argument12;
}
А split не работает, потому что j там всё еще очередной элемент массива, а еще не строка. Должно было быть
String( j ).split("")
P.s. эти ----тут не нужны... и так прокатывает. Если сильно хочется красивый JS постить, можно использовать левый ALT + 255
function fun( argument12 ) {
for( var i = 0; i < argument12.length; i++ ){
if( argument12[i] < 10 ){
argument12[i] = "0" + argument12[i];
}
}
return argument12;
}
Или, если надо все числа превратить в строки...
function fun( argument12 ) {
for( var i = 0; i < argument12.length; i++ ){
argument12[i] = ( (argument12[i] < 10) ? "0" : "" ) + argument12[i];
//Здесь сперва идет проверка.
//Если число меньше 10 - будет добавляться 0, иначе - пустая строка.
}
return argument12;
}
А split не работает, потому что j там всё еще очередной элемент массива, а еще не строка. Должно было быть
String( j ).split("")
P.s. эти ----тут не нужны... и так прокатывает. Если сильно хочется красивый JS постить, можно использовать левый ALT + 255
Похожие вопросы
- JavaScript. Помогите, пожалуйста понять, где здесь ошибка. Не ругайтесь, я нуб.
- Напишите на JavaScript программу расчета средней зарплаты пяти сотрудников фирмы.
- Аргументы функции. JavaScript
- Виды функций JavaScript
- Кто знает JavaScript помогите
- Javascript Объясните, пожалуйста, методы apply, call и caller.
- Почему простые текстовые игры не пишут в браузере на javascript, используя другие решения
- Помогите, пожалуйста, написать js код для обновления ссылки
- Для объекта Date написать функцию isBetween( date1, date2), которая возвращает true
- написать сценарий JavaScrip. помогите)