Испытание "Сколько цифр?"

Поняла,

спасибо.

var number = 1234;
var quantity = 0;

for (var i=1; i<=number; i*=10) {
  if (Math.abs(number/i) >0) {
    quantity++
}
}
console.log(quantity)

Оцените решение)

Немного отошёл от темы задания, но всё работает.

var number = 123;
var quantity = 0;

quantity = (number.toString()).length;

скобки можете опустить. js последовательно применяет методы из прототипа, т.е. length берет от number.toString() и так, т.е:

var number = 123;
var quantity = number.toString().length;

Почему у тебя темная тема ? как такую активировать ? )

var number = 12929299292;
var quantity = 1;
var i = 10;

Всё, как учили на курсе, без наворотов! Цикл ‘for’ не лучший для этой задачи, ‘while’ создан для этого.

while (i < number) {
number /= 10;
quantity += 1;
}

Это можно сделать в личном кабинете.

Мне показалось странным делать это цыклом, ИМХО есть гораздо более подходящий для таких целей способ:

Спойлер
var number = 123;
var quantity = 0;

quantity = String(number).length

К примеру такой код считает количество цифр вплоть до 309 значных, дальше как я понимаю цикл прерывается так как долго считает:

Решение через цикл

var number = 123;
var quantity = 1;
while (true) {
if (number<10){
break;
} else {
number /=10
quantity++
}
}

Ваш второй способ будет показывать всегда результат меньше на единицу, поскольку, когда число меньше десяти, вы не прибавляете счётчик. Это можно исправить так:

while (true) {
  if (number<10){
  quantity++
  break;
 } else {
  number /=10 
  quantity++
 } 
}

Ну а вообще, через цикл лучше попробовать так:

while (number > 1) {
  number /= 10;
  quantity++;
}

Только сейчас подумал о таком решении:

quantity = Math.floor(Math.log10(number)) + 1;

Конечно, работает только с положительными числами.

Я делал проще:
var quantity = 1;
забыл о том что менял значение с 0 на 1, ну в числе как минимум 1 цифра то полюбому будет

Почему выдаёт ошибку “Timeout error”, чего не так-то???

var x = 1;
var quantity = 0;
while ((number / x) > 1) {
quantity++;
x *= 10;}
console.log (quantity)

ошибку эту выдаёт если не ошибаюсь если цикл бесконечный, видимо у тебя всё время условие выполняется…

Но ваш код у меня работает без проблем…
Правда я его в местной среде запускал.

Также код выполняется без ошибок. Пришлите скриншот, пожалуйста.

господа, все выполняется верно, дааа)
видимо, изначальная невнимательность моя)
спс)

var number = 23515625621;
var cutNumber = number;
var quantity = 0;
var i = 0;

while(quantity <= number && cutNumber > 1){

if(cutNumber >= 1){

cutNumber = cutNumber/10;

console.log(cutNumber);
quantity++;
} 

}

console.log(quantity);

у меня получилось вот так

var number = 123;
var quantity = 0;

while(number >= 1){
number/=10;
quantity++
}
console.log(quantity)

2 Симпатий

я сравниваю с десятками, сотнями итд

var number = 123;
var quantity = 1;
var compare = 10;

while (number > compare) {
compare = compare * 10;
quantity++;
}

1 Симпатия

Рекомендую использовать свойства STRING
var number = 123;
var quantity = number.toString().length;

quantity = String(number).length;