Как се изписват стойности на един ред и как на нов ред?

JavaScript Програмиране с JavaScript

В примера с for цикъл от модул 4, урок 4,

for (var number=0; number<=10; number++) { console.log(number); } отпечатаните (върнатите) от цикъла резултати са на нов ред всяко следващо число, а как може да се отпечатат на един ред, с пауза между тях?

Всяко извинване на console.log изписва резултат на нов ред. Вариантите са два тук - да сложиш няколко стойности в скобите, разделени със запетая:

Пример: console.log(1, 2, 3, 4);

или да за запишеш всички стойности в един string и да ги покажеш

Пример: var string = 1 + ' ' + 2 + ' ' + 3 + ' ' + 4; console.log(string);

Да, разбира се, но конкретно в този случай - за отпечатаните на върнатите от цикъла резултати, се чудех как може да се отпечата резултата на конзолата на един ред - като последователни числа, с 1 пауза м/у цифрите : 1 2 3 4 5 6 7 8 9 10
т.е. чудя са дали има JavaScript аналог на Console.Write(number) от C#.

Може би - for (var number=0; number<=10; number++) { document.write(number + " "); }

var result = ""; for (var number=0; number<=10; number++) { result += number + " "; } console.log(result); //0 1 2 3 4 5 6 7 8 9 10

Опитах да направя същото, но с леко разширено задание - да отпечата на редове по 10 числата от цикъла. Получи се с лекота, но не се занимах докрай, защото търся елегантно решение за следното, описано по- долу:

Ето го кода:

Ето и резултатът:

Изненада имаше само от това, че печаташе на първи ред сама нулата а цикълът не продължаваше дадобавя към нея. Затова вмъкнах и IF-а. Според мен причината е в конфликт между типа на променливата number и резултатът от логическата проверка. Затова и в предишните уроци задавах подробни въпроси непряко свързани със същността на урока. Това, което исках да доработя е да се подравняват числата по дясната страна на изпечатаното поле. За целта на едноцифрените числа трябва да добавя по още 2 интервала, на двуцифрените - по още един, а на трицифрените да не добавам повече интервали освен при слепването на стринга. Мога да го направя с if / else if, но ще стане тромаво А не намерих формат на case при който да задавам логически изрази от типа number > 0 && number < 11, респ. number > 10 && number < 1000
Въпросът ми (макар че е във връзка с предният урок) е има ли такъв формат на case?

Оказа се че не може да се публикува тук код, ето го на снимка:

Всъщност единственият тип възможно сравнение при изпълнението на оператор switch/case е "===", т.е. трябва да има пълно съответствие на стойността и типа за да се получи съответствие. Може да използвате кода по-долу за да видите, че в switch/case true не се конвертира до 1 и за да получите съвпадение трябва да имате case true var x = true; switch (x) { case 1: console.log("entered in case 1"); break; case 0: console.log("Entered in case 0"); break; case true: console.log("True is true!"); break; default: console.log("No match found!"); break; } Съответно логически изрази от типа number > 0 && number < 11, респ. number > 10 && number < 1000 не могат да се използват в case.

На въпроса по-горе: Kак може да се отпечата резултата на конзолата на един ред - като последователни числа, с интервал м/у цифрите : 1 2 3 4 5 6 7 8 9 10. Ето как:

var result = "" for (var number = 1; number <=10; number++) { result += number + " "; } console.log(result);


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация