|
@@ -0,0 +1,325 @@
|
|
|
+// Напишите функцию 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
|