|
@@ -1,4 +1,4 @@
|
|
|
-// Required Task 1
|
|
|
+ // Required Task 1
|
|
|
// Завершите код функции typeMessage так, чтобы на страницу выводился один символ в секунду
|
|
|
function typeMessage ( message, velocity ) {
|
|
|
var container = document.getElementById ( "demo" ) ?
|
|
@@ -22,50 +22,8 @@ function typeMessage ( message, velocity ) {
|
|
|
})()
|
|
|
}
|
|
|
typeMessage ( `Welcome to the hell`, 1 )
|
|
|
-// // Additionally Task 2
|
|
|
-// // Напилите код методов setUserPresent, showPresent и showAbsent
|
|
|
-// // var users = (
|
|
|
-// // function ( list ) {
|
|
|
-// // var users = []
|
|
|
-// // for ( var user of list )
|
|
|
-// // users.push ({
|
|
|
-// // name: user,
|
|
|
-// // present: false
|
|
|
-// // })
|
|
|
-
|
|
|
-// // return {
|
|
|
-// // setUserPresent ( userName, present ) {
|
|
|
-// // ...
|
|
|
-// // },
|
|
|
-// // showPresent () {
|
|
|
-// // ...
|
|
|
-// // },
|
|
|
-// // showAbsent () {
|
|
|
-// // ...
|
|
|
-// // }
|
|
|
-// // }
|
|
|
-// // }
|
|
|
-// // )( [ "Иван", "Дмитрий", "Степан", "Михаил" ] )
|
|
|
-
|
|
|
-// // users.showAbsent()
|
|
|
-// // После запуска кода результат в консоли должен быть таким:
|
|
|
-
|
|
|
-// // Иван
|
|
|
-// // Дмитрий
|
|
|
-// // Степан
|
|
|
-// // Михаил
|
|
|
-// // а после выполнения кода:
|
|
|
-
|
|
|
-// // users.setUserPresent( "Иван", "+" )
|
|
|
-// // users.setUserPresent( "Михаил", "присутствовал" )
|
|
|
-// // users.setUserPresent( "Степан", true )
|
|
|
-
|
|
|
-// // users.showPresent()
|
|
|
-// // результат в консоли должен быть таким:
|
|
|
-
|
|
|
-// // Иван
|
|
|
-// // Степан
|
|
|
-// // Михаил
|
|
|
+ // Additionally Task 2
|
|
|
+// Напилите код методов setUserPresent, showPresent и showAbsent
|
|
|
// var users = (
|
|
|
// function ( list ) {
|
|
|
// var users = []
|
|
@@ -77,54 +35,98 @@ typeMessage ( `Welcome to the hell`, 1 )
|
|
|
|
|
|
// return {
|
|
|
// setUserPresent ( userName, present ) {
|
|
|
-// for (var user of users) {
|
|
|
-// userName === user.name && (present === '+' || "присутствовал" || present === true) ? user.present = true : null;
|
|
|
-// }
|
|
|
+// ...
|
|
|
// },
|
|
|
// showPresent () {
|
|
|
-// for (var user of users) {
|
|
|
-// user.present === true ?console.log(user.name) : null;
|
|
|
-// }
|
|
|
+// ...
|
|
|
// },
|
|
|
// showAbsent () {
|
|
|
-// user.present === false ? console.log(user.name) : null;
|
|
|
+// ...
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// )( [ "Иван", "Дмитрий", "Степан", "Михаил" ] )
|
|
|
|
|
|
// users.showAbsent()
|
|
|
-// users.showAbsent()
|
|
|
+// После запуска кода результат в консоли должен быть таким:
|
|
|
+
|
|
|
+// Иван
|
|
|
+// Дмитрий
|
|
|
+// Степан
|
|
|
+// Михаил
|
|
|
+// а после выполнения кода:
|
|
|
+
|
|
|
// users.setUserPresent( "Иван", "+" )
|
|
|
// users.setUserPresent( "Михаил", "присутствовал" )
|
|
|
// users.setUserPresent( "Степан", true )
|
|
|
+
|
|
|
// users.showPresent()
|
|
|
+// результат в консоли должен быть таким:
|
|
|
|
|
|
-// // Additionally Task 3
|
|
|
-// // Допилите код функции changeClass, которая парсит все стили страницы в поисках заданного класса, а затем меняет атрибуты стиля этого класса
|
|
|
+// Иван
|
|
|
+// Степан
|
|
|
+// Михаил
|
|
|
+ var users = (
|
|
|
+ function ( list ) {
|
|
|
+ var users = []
|
|
|
+ for ( var user of list )
|
|
|
+ users.push ({
|
|
|
+ name: user,
|
|
|
+ present: false
|
|
|
+ })
|
|
|
+
|
|
|
+ return {
|
|
|
+ setUserPresent ( userName, present ) {
|
|
|
+ for (var user of users) {
|
|
|
+ userName === user.name && (present === '+' || "присутствовал" || present === true) ? user.present = true : null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showPresent () {
|
|
|
+ for (var user of users) {
|
|
|
+ user.present === true ?console.log(user.name) : null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showAbsent () {
|
|
|
+ for (var user of users) {
|
|
|
+ user.present === false ? console.log(user.name) : null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+)( [ "Иван", "Дмитрий", "Степан", "Михаил" ] )
|
|
|
|
|
|
-// // let changeClass = ( classname, styleString ) => (
|
|
|
-// // ...
|
|
|
-// // ).length > 0 ? console.log ( "found" ) :
|
|
|
-// // document.head.appendChild (
|
|
|
-// // document.createElement ( "style" )
|
|
|
-// // ).textContent = `.${classname} {${styleString}}`
|
|
|
-// // После вызова функции:
|
|
|
+users.showAbsent()
|
|
|
|
|
|
-// // changeClass ( "second-level-menu", "background-color: red!important;" )
|
|
|
-// // в консоли страницы, где есть элементы с классом second-level-menu, у всех элементов этого класса цвет фона должен измениться на красный
|
|
|
-// let changeClass = ( classname, styleString ) => ( Array.from ( document.styleSheets )
|
|
|
-// .filter ( sheet => !sheet.href )
|
|
|
-// .map (
|
|
|
-// sheet => Array.from ( sheet.cssRules )
|
|
|
-// .filter ( rule => rule.selectorText === `.{classname}` )
|
|
|
-// )
|
|
|
-// .filter ( item => item.length > 0 )
|
|
|
-// .map ( item => item[0].cssText.split ("}")
|
|
|
-// .join ( `${styleString}}` )
|
|
|
-// )
|
|
|
+users.setUserPresent( "Иван", "+" )
|
|
|
+users.setUserPresent( "Михаил", "присутствовал" )
|
|
|
+users.setUserPresent( "Степан", true )
|
|
|
+users.showPresent()
|
|
|
+
|
|
|
+ // Additionally Task 3
|
|
|
+// Допилите код функции changeClass, которая парсит все стили страницы в поисках заданного класса, а затем меняет атрибуты стиля этого класса
|
|
|
+
|
|
|
+// let changeClass = ( classname, styleString ) => (
|
|
|
+// ...
|
|
|
// ).length > 0 ? console.log ( "found" ) :
|
|
|
-// document.head.appendChild (
|
|
|
-// document.createElement ( "style" )
|
|
|
-// ).textContent = `.${classname} {${styleString}}`
|
|
|
-// changeClass ( "second-level-menu", "background-color: red!important;" )
|
|
|
+// document.head.appendChild (
|
|
|
+// document.createElement ( "style" )
|
|
|
+// ).textContent = `.${classname} {${styleString}}`
|
|
|
+// После вызова функции:
|
|
|
+
|
|
|
+// changeClass ( "second-level-menu", "background-color: red!important;" )
|
|
|
+// в консоли страницы, где есть элементы с классом second-level-menu, у всех элементов этого класса цвет фона должен измениться на красный
|
|
|
+let changeClass = ( classname, styleString ) => ( Array.from ( document.styleSheets )
|
|
|
+.filter ( sheet => !sheet.href )
|
|
|
+ .map (
|
|
|
+ sheet => Array.from ( sheet.cssRules )
|
|
|
+ .filter ( rule => rule.selectorText === `.{classname}` )
|
|
|
+ )
|
|
|
+ .filter ( item => item.length > 0 )
|
|
|
+ .map ( item => item[0].cssText.split ("}")
|
|
|
+ .join ( `${styleString}}` )
|
|
|
+ )
|
|
|
+).length > 0 ? console.log ( "found" ) :
|
|
|
+ document.head.appendChild (
|
|
|
+ document.createElement ( "style" )
|
|
|
+ ).textContent = `.${classname} {${styleString}}`
|
|
|
+ changeClass ( "second-level-menu", "background-color: red!important;" )
|