123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- // Напишите функцию 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 = $('<section>').appendTo('body');
- // for (i=0;i < methods.length; i++) {
- // function article() {
- // var $item = $('<article>').appendTo('section');
- // $('<h1>').text(methods[i].h1).appendTo($item);
- // $('<p>').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
|