From 9afaf9f48d62eeebc8cbe42165c40ee994a7543a Mon Sep 17 00:00:00 2001 From: Pavel Khudyakov Date: Wed, 31 Oct 2012 17:57:03 +0600 Subject: [PATCH] dz3-iterators-functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Крайний срок, поэтому выкладываю что есть... Обязательно доделаю: добавлю фабричный метод без копипэйста, сортировку по дате, приведу к JSLint, JSDoc. Стыдно :( --- dz3_Khudyakov.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 dz3_Khudyakov.js diff --git a/dz3_Khudyakov.js b/dz3_Khudyakov.js new file mode 100644 index 0000000..06bd9f8 --- /dev/null +++ b/dz3_Khudyakov.js @@ -0,0 +1,52 @@ +var events = []; +for (i = 1; i < 31; i++) { + events.push({ + "name": "Событие №" + i, // тридцать событий + "start": "2012," + (Math.round(Math.random() * 11) + 1) + ",1,12,00,0", // различающихся месяцем + "location": Math.round(Math.random() * 2), // пусть будет три основных локации + "allDay": Math.round(Math.random()), // весь день + "stars": Math.round(Math.random() * 4) + 1, // случайный рейтинг + "withMe": Math.round(Math.random()) // с моим участием + }); +}; + +var result = events.map(function(event) { + return event.name + ", начало: " + event.start + ", гео: " + event.location + ", весь день: " + event.allDay + ", рейтинг: " + event.stars + ", пойду: " + event.withMe + "."; +}); +console.log(result.join("
")); // вывод коллекции из 30 случайных событий + +var allWithMe = events.filter(function(event) { + return event.withMe === 1; +}); + +console.log(allWithMe.length); // количество событий с моим участием + +var allDayEvent = events.filter(function(event) { + return event.allDay === 1; + }) + .map(function (event) { + return event.name; + }) + .join(', '); + +console.log(allDayEvent); // имена событий протяженностью весь день + +var fiveStars = events.filter(function (event) { + return event.stars === 5; + }) + .map(function (event) { + return event.name; + }) + .join(', '); + +console.log(fiveStars); // имена событий с пятью звёздами + +var locationEvent = events.filter(function (event) { + return event.location === 0; + }) + .map(function (event) { + return event.name; + }) + .join(', '); + +console.log(locationEvent); // имена событий, происходящих в первой ("нулевой") локации \ No newline at end of file