[JS] Loops - All homework tasks


22

Реших да си няправя един темплейт за задачките, ако ви харесва го използвайте и променяйте свободно, ако не - приемам критики и препоръки :).

repository
 

1.Write a script that prints all the numbers from 1 to N.
demo
code

2.Write a script that prints all the numbers from 1 to N, that are not divisible by 3 and 7 at the same time.

demo
code

3.Write a script that finds the max and min number from a sequence of numbers.

demo
code

4.Write a script that finds the lexicographically smallest and largest property in document, window and navigator objects.

demo
code




Отговори



0

 Колеги, написах задачата както е обяснено, но дава странни стойности. А на IE висчко е undefined...

http://pastebin.com/zDHTFQAz

Да не би да не използвам for-in цикъла правилно?


от ivan.mihov1 (4988 точки)


0
Здравей! Мисля че грешката ти идва от това, че извършваш for in loop върху празен масив:
var orderDocument = new Array();
for (var prop in Document) { orderDocument.push(prop); }
Според мен трябва да промениш имената на Document, Window и Navigator на същите, но с малки букви. А условието ти трябва да изглежда така:
for (var prop in document) { orderDocument.push(prop); }
...
for (var prop in window) { orderDocument.push(prop); }
...
for (var prop in navigator) { orderDocument.push(prop); }
И спокойно можеше да си спестиш проверката на всеки обект поотделно като направиш един масив с трите обекта, после направиш един for loop с големина = големината на масива с обекти, а вътре в loop-a да правиш повтарящите се операции.

от stakata (684 точки)


0

Ето и моите задачи от лекцията "Loops" -> GitHub

Относно последната задача реших да използвам for цикъл, който да обхожда масив със съответните обекти. А вътре в него си създавам промелива, която да конкатенира всички пропъртита, които са открити от втория for in цикъл, търсещ ги във всеки един обект. След което тази променлива бива  split-ната и подадена на втора променлива, която след това се превръща в масив, сортиран след това. Накрая извеждам най-малкото и най-голямото свойство на определения обект съответно с arr[1] (arr[0] е празна клетка) и arr[arr.length-1].


от stakata (684 точки)


0

http://jsfiddle.net/rdXHG/2/

Задача 3:  Поредицата от числа, от които трябва да намерим най-малкото и най-голямото, я записваме в масив. Идеята е да сортираме масива във възходящ ред, след което  да достъпим чрез първия и последния му индекс съответно най-малкото число и най-голямото. Интересното при JS обаче е, че сортиращия метод .sort() на масивите, сортира елементите вътре в него по азбучен ред. Т.е. ако в масива имаме числата [33, 3, 7] нормално е да очаквате след сортирането те да се подредят в реда [3, 7, 33]… Е да ама не – след използването само на arr.sort() подредбата им ще бъде [3, 33, 7]. За да накарате .sort() да сортира правилно числа, трябва да музададете като параметър някаква сортираща функция, чрез която да се предефинират правилата за сотртиране, така че те да са приложими адекватно за числа.


от Matrix (2857 точки)


1

Здравейте, това са задачите ми

Задачи

В задача 1 съм показал 2 решения  - с for цикъл и с do-while.

Задача 2 е разширен вариант на първата с добавена проверка за делене на числто на 3 и на 7, като липсващото число съм отбелязал с звездички.

Задача 3 съм яна правил с един for цикъл, в който присвоявам стойността на новия масив и правя проверка дали числото е min или max.

В задача 4 съм изполвал for-in цикъл за да мога да направя проверка за дължината.

 


от KaloyanBobev (330 точки)