Професионална програма
Loading...
+ Нов въпрос
ttitto avatar ttitto 1154 Точки

[Homework] Javascript - Loops Arrays String - Problem {3} - Properties

Колеги имам проблем с трета задача и моля за малко помощ. Написах функцията, която трябва да изплюе свойствата на документа, обаче не знам как да подам самият документ като аргумент на функцията, така че да не е undefined. Пробвах с DOMImplementation..., пробвах и да го хардкодна в самата функция, но не се справям. Ето какво имам в js-файла:

 

function displayProperties(value) {
var props=new Array();
for (var prop in value) {
props.push(prop);
}

return props.join('\n');
}
displayProperties(document);

1
JavaScript Fundamentals
Tr00peR avatar Tr00peR 569 Точки

Aз за сега успях само през конзолата на браузъра да го подкарам, като закачих скрипта за празен хтмл. Интересното е, че дори тогава не ги изкарва през node.js, но то не се и изисква по условие :) 

И една малка забележка колега - правилният начин за създаване на масив е с [], а не с new Array (). Или поне така съм разбрал.

3
DJZoning avatar DJZoning 85 Точки

Колега, property-тата не ги изкарва през node.js, защото в самия node нямаш html съответно "document", затова не ги изкарва.

2
DJZoning avatar DJZoning 85 Точки

Ами значи така както си го направил след for цикъла трябва да сортираш масива така:

props.sort();

защото в условиео пише, че трябва да е сортиран масива и след това

return props.join('\n');

последния ред го направи така, за да се дисплейва това, което се връща:

console.log(displayProperties(document));

и в крайна сметка трябва да имаш един HTML, в който да импортнеш този .js, за да имаш реално "document". В противен случай нямаш document, на който да вземеш property-тата.

Ето моето решение естествено имам и HTML само, че тука е само .js-а

1
ttitto avatar ttitto 1154 Точки
Благодаря за забележките! Задачата не беше още доизпипана. Просто пуснах някакъв код, за да се изясни ситуацията с document - мислех си че е задължително да тръгне на node.js без да се добавя предварително html документ.
0
borislavml avatar borislavml 368 Точки

Колеги, за 3-та задачо ясно че трябва да я run-нем на браузърската конзола, но какво правите вие за останалите? В предишното домашно за Syntax на всички условия си пишеше ясно: "Run the program through Node.js", а сега в условията на задачите пише само: "print the output at the console." Означава ли това, че трябва да закачаме всички .js файлове към някакъв html и да принтим резултата  в браузърската конзола. На мен лично това ми се струва малоумно- да пишеш JS функции и алгоритми, които не правят нищо по DOM  дървото и да ги рънвам през браузара!? Не виждам какво упражнявам или постигам така. Аз лично пиша на Sublime и си сложих node.js builder, и си ги рънвам направо в него -много удобно. Споделете вие как ги правите!?

2
anton_cholakov avatar anton_cholakov 88 Точки

Принципно всички решения на домашни досега си ги правя в отделен js файл, закачен към съответния html за всяка задача.

И аз да попитам нещо - Някой използва ли тази конзола, която е в демата от последната лекция? Защото аз така започнах да правя домашното и е една идея по-удобно за проверяващите след това

0
borislavml avatar borislavml 368 Точки

Аз пък смятам да продължа да си пиша единствено .js файлове, без html, които даrun-ват само през node.js. Нали на изпита в крайна сметка ще пишем такива задачи, въпреки че според мен няма как да не ни "изненадат" със задача, в която да си играем с DOM дървото(но как ще мине такава задача през judge-a?!).

JS конзолата от демата не я ползвам, но наистина доста ще улесни проверяващите. Някак си просто не ми се занимава да я правя тая процедура с html файл за всяка задача :)

0
anton_cholakov avatar anton_cholakov 88 Точки

Прав си, наистина си е доста занимавка, особено с начина по който ги подреждам аз и тези 19 задачи примерно - това са 19 html файла с 19 js файла :) 

0