// Напишите функцию max, которая сравнивает два числа и возвращает большее: // function comparison() { // x = +prompt('Enter first number'); // y = +prompt('Enter second number'); // if (isFinite(x) && isFinite(y)) { // if (x < y) { // alert(y + ' > ' + x); // }else if (y < x) { // alert(x + ' > ' + y); // }else alert('values are the same'); // }else alert('Incorrect, not a number'); // } // comparison(); // Напишите функцию-аналог Math.min(). Функция принимает любое количество чисел и возвращает меньшее из них: // function min() { // for (var i = 0, min = arguments[0]; i < arguments.length; i++){ // if (arguments[i] < arguments[0]) { // min = arguments[i]; // } // } // console.log(min); // } // min(3, 6, 8, 0, -1, 5, 6, 8); // Изучите перебирающие методы массивов: forEach, filter, map. Создайте массив объектов users (~10 объектов), // каждый объект имеет поля firstname, lastname, age с разными значениями. Используя встроенные функции массивов: // Отфильтруйте пользователей младше 18 лет // Добавьте каждому объекту поле fullName, которое является конкатенацией имени и фамилии // Сформируйте новый массив, который содержит только полное имя пользователей // debugger; // var arr = [ // { // firstname: 'John', // lastname: 'Smith', // age: '15' // }, // { // firstname: 'Tony', // lastname: 'Stark', // age: '54' // }, // { // firstname: 'Jeck', // lastname: 'Morris', // age: '25' // }, // { // firstname: 'Anthony', // lastname: 'Montana', // age: '34' // }, // { // firstname: 'Gregory', // lastname: 'Guck', // age: '14' // }, // { // firstname: 'Joffry', // lastname: 'Barateon', // age: '19' // }, // { // firstname: 'Sansa', // lastname: 'Redhead', // age: '10' // }, // { // firstname: 'Kreol', // lastname: 'Destroyer', // age: '90' // }, // { // firstname: 'Oleg', // lastname: 'Britva', // age: '33' // }, // { // firstname: 'Crazy', // lastname: 'Frog', // age: '58' // } // ]; // var more18 = arr.filter(function(item, i, age){ // return arr[i].age > 18; // }) // var add = function(){} // for (var i=0; i < arr.length;i++) { // var fullName = arr[i].firstname + ' ' + arr[i].lastname; // arr[i].fullName = fullName; // }; // var full = arr.map(function(item){ // return item.fullName; // }); // Напишите функцию аналог метода массива shift. Функция удаляет из переданного в параметре массива первый элемент. // var arr = [ // { // firstname: 'John', // lastname: 'Smith', // age: '15' // }, // { // firstname: 'Tony', // lastname: 'Stark', // age: '54' // }, // { // firstname: 'Jeck', // lastname: 'Morris', // age: '25' // }, // { // firstname: 'Anthony', // lastname: 'Montana', // age: '34' // }, // { // firstname: 'Gregory', // lastname: 'Guck', // age: '14' // }, // { // firstname: 'Joffry', // lastname: 'Barateon', // age: '19' // }, // { // firstname: 'Sansa', // lastname: 'Redhead', // age: '10' // }, // { // firstname: 'Kreol', // lastname: 'Destroyer', // age: '90' // }, // { // firstname: 'Oleg', // lastname: 'Britva', // age: '33' // }, // { // firstname: 'Crazy', // lastname: 'Frog', // age: '58' // } // ]; // function nwA() { // for (var i=1,j=0, newarr = []; i < arr.length; i++, j++) { // newarr[j] =arr[i]; // } // console.log(newarr); // } // nwA(); // Напишите функцию аналог метода массива push. // Функция добавляет в конец переданного в параметре массив произвольное количество элементов. // var arr = [ // { // firstname: 'John', // lastname: 'Smith', // age: '15' // }, // { // firstname: 'Tony', // lastname: 'Stark', // age: '54' // }, // { // firstname: 'Jeck', // lastname: 'Morris', // age: '25' // } // ]; // function nwA() { // for (var i=0, newarr = []; arr.length <6; i++, arr.length++) { // newarr[arr.length] = arr[i]; // } // console.log(newarr); // } // nwA(); // Напишите функцию аналог метода jQuery $.extend. Первый параметр функции - целевой объект, // поля которого будут изменены или расширены. // Остальные параметры - объекты-источники, полями которых будет расширяться целевой объект. // var obj = {}; // var obj1 = { // orange : 'Апельсин', // banana : 'Банан' // }; // var obj2 = { // carrot : 'Морковка', // cabbage : 'Капуста' // } // var obj3 = { // meet : 'Мясо', // fish : 'Рыба' // } // debugger; // function allSourse() { // for (i=1;i <= 3;i++) { // if (i=1) { // for (var key in obj1) { // obj[key] = obj1[key]; // } // } // if (i=2) { // for (var key in obj2) { // obj[key] = obj2[key]; // } // } // if (i=3) { // for (var key in obj3) { // obj[key] = obj3[key]; // } // } // } // console.log(obj); // } // allSourse(); // Напишите функцию setComment с параметрами: date, message, author. // Дата и текст сообщения - обязательные параметры, если какой-то из них или оба отсутствуют, // то выполнение функции должно обрываться, а пользователю выдаваться предупреждение (alert) о том, // что данные переданы некорректно. Параметр author - опциональный, но должна происходить проверка: // если параметр не передан, то вместо него подставляется значение ‘Anonymous’. // Функция распечатывает на странице текст в формате: // <имя_автора>, <дата> // <текст_сообщения> // function check(author,date,text) { // var dates = { // firstData : new Date( new Date().setDate(new Date().getDate()+365*20)), // secondData : new Date( new Date().setDate(new Date().getDate()-365*40)) // } // if (author === null){ // author = 'Anonymous'; // } // if (date === null){ // alert('Incorrect data'); // return; // } else if ((dates.firstData > date) &&(date > dates.secondData)) { // date = date; // } else { // alert('Incorrect data'); // return; // } // if (text === null){ // alert('Enter something'); // return; // } // console.log(author + ', ' + date); // console.log(text); // } // check(prompt('Enter a name'), new Date(prompt('Enter date in format YYYY-MM-DD')),text = prompt('Enter something')); // Создайте объект, описывающий html-разметку. Напишите функцию, которая добавляет разметку в произвольный контейнер на странице. // var methods = [ // { // h1: 'Array.prototype.every()', // tag : 'article', // p: 'Метод every() проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.'}, // { // h1: 'Array.prototype.some()', // tag : 'article', // p: 'Метод some() проверяет, удовлетворяет ли хоть какой-нибудь элемент массива условию, заданному в передаваемой функции.'}, // { // h1: 'Array.prototype.reduce()', // tag : 'article', // p: 'Метод reduce() применяет функцию к аккумулятору и каждому значению массива (слева-направо), сводя его к одному значению.'}, // { // h1: 'Array.prototype.reduceRight()', // tag : 'article', // p: 'Метод reduceRight() применяет функцию к аккумулятору и каждому значению массива (справа-налево), сводя его к одному значению.'} // ]; // function meth() { // var section = $('
').appendTo('body'); // for (i=0;i < methods.length; i++) { // function article() { // var $item = $('
').appendTo('section'); // $('

').text(methods[i].h1).appendTo($item); // $('

').text(methods[i].p).appendTo($item); // } // article(methods[i].h1,methods[i].p); // } // } // meth(); // Используя замыкание, напишите функцию createTimer, которая использует метод performance.now() // для получения текущей временной метки и служит для замера времени выполнения другого кода: // function createTimer(){ // return function () { // return performance.now(); // } // } // var timer = createTimer(); // alert('!'); // alert( timer() ); // Используя замыкания, создайте функцию createAdder(), // которая принимает на вход любой примитивный параметр и возвращает функцию, // которая добавляет к первому параметру второй. Функция работает по следующему принципу: // var hello = createAdder('Hello, '); // alert( hello('John') ); // Hello, John // alert( hello('Harry') ); // Hello, Harry // var plus = createAdder(5); // alert( plus(1) ); // 6 // alert( plus(5) ); // 10 // function createAdder(any) { // var tt = any; // arguments[1]; // return function() { // for (var i = 0; i < 2; i++) { // return tt + arguments[0]; // } // } // } // var plus = createAdder(5); // alert( plus(1) ); // 6 // alert( plus(5) ); // 10 // var hello = createAdder('Hello, '); // alert( hello('John') ); // Hello, John // alert( hello('Harry') ); // Hello, Harry