Реализовать функцию toArray(obj), которая принимает аргументом массивоподобный объект (например arguments), и
возвращает массив из тех же элементов, которые входили в массивоподобный объект.
Пример работы:
function someFunc() {
var args = toArray(arguments);
console.log(arguments.forEach); // undefined, метод есть только у массивов.
console.log(args.forEach); // [function], метод есть только у массивов.
}
someFunc(1,2,3,4);
Реализуй функцию queryStringToObject(queryString), которая возвращает объект. Распознавать следующие типы данных:
числа, строки, булевы. Помни, что некоторые символы query string могут быть закодированы.
Пример работы:
queryStringToObject("user=true"); // {user: true}
queryStringToObject("user=true&age=29"); // {user: true, age: 29}
queryStringToObject("user=true&age=29&name=Evgen"); // {user: true, age: 29, name: "Evgen"}
Есть структура вида:
[{
delta: 5,
value: 5
}, {
delta: -3,
value: 2
}, {
delta: 5,
value: 7
}, {
delta: 0,
value: 7
}]
Она подчиняется следющему правилу: каждый последующий объект массива содержит объект со свойствами delta и value.
delta - разница значений value с предыдущим объектом.
Имеется экземпляр структуры, и достоверно известно, что один (и только один) из элементов имеет неверное
значение delta и value, и что этот элемент не является ни первым, ни последним. Необходимо написать функцию
fixStruct(struct), которая изменяет неверное значение таким образом, чтобы его delta и value снова подчинялись
правилу, описанному выше.
Пример работы:
var struct = [{
delta: 0,
value: 1
}, {
delta: 0,
value: 0
}, {
delta: 3,
value: 5
}];
console.log(fixStruct(struct));
/* [{
delta: 0,
value: 1
}, {
delta: 1,
value: 2
}, {
delta: 3,
value: 5
}]
*/
Реализовать функцию getUnique(arr), которая принимает аргументом массив или массивоподоный объект, и возвращает
массив таких элементов, которые входят в массив аргумента, и встречаются только раз в массиве результата. Аргумент
не должен изменяться. Порядок элементов результирующего массива должен совпадать с порядком, в котором они встречаются
в оригинальной структуре.
var a = {};
var b = {};
var u = getUnique([a,b,b,a]);
console.log(u[0] === a); // true
console.log(u[1] === b); // true
console.log(u.length === 2); // true
Написать функцию createSummator(initialValue), с опциональным (необязательным) первым параметром, который является
точкой отчета счетчика. Если аргумент initialValue не передан, то отчет начинается с 0. При каждом вызове функция
возвращает объект с методами inc(num), dec(num), get(). Объектов, которые возвращает функция
createSummator(initialValue), может быть любое количество.
Реализация должна позволять манипуляции со значением счетчика только с использованием этих методов.
inc(num) увеличивает значение счетчика на значение аргумента num. Если метод вызван без аргумента, то значение счетчика увеличивается на 1dec(num) уменьшает значение счетчика на значение num, если метод вызван с аргументом. Если метод вызван без аргумента, то значение счетчика уменьшается на 1get() возвращает текущее значение счетчика.Примеры использования:
var s1 = createSummator();
s1.inc();
s1.inc();
s1.inc();
console.log(s1.get()); // 3
var s2 = createSummator(10);
s2.inc(2);
s2.inc(3);
s2.inc(4);
console.log(s2.get()); // 19
var s3 = createSummator(5);
s3.inc(5);
s3.dec(10);
console.log(s3.get()); // 0
Для выполнения следующих заданий использовать следующие ф-ции
Реализовать функцию extractOddItems(arr), которая возвращает новый массив, в котором содержатся только те элементы,
которые обладали нечетным индексом в массиве, переданном в качестве аргумента. Пример работы:
extractOddItems([0,1,0,1,0,1]); // [1,1,1]
extractOddItems([1,2,3,4,5]); [2, 4]
Реализовать функцию getUnique(arr), которая принимает аргументом массив или массивоподоный объект, и возвращает массив
таких элементов, которые входят в массив аргумента, и встречаются только раз в массиве результата. Аргумент не должен
изменяться. Порядок элементов результирующего массива должен совпадать с порядком, в котором они встречаются в
оригинальной структуре.
var a = {};
var b = {};
var u = getUnique([a,b,b,a]);
console.log(u[0] === a); // true
console.log(u[1] === b); // true
console.log(u.length === 2); // true
Релизовать функцию execFunctions(arrOfFunctions), которая получает аргументом массив функций arrOfFunctions, и
возвращает массив, где каждый элемент это результат вызова функции стоящей на индексе, что и элемент.
Пример работы:
function return10() {
return 10;
}
function returnUser() {
return {name: "Evgen"};
}
function empty() {}
execFunctions([return10, returnUser, empty]); // [10, {name: "Evgen"}, undefined]
Реализовать функцию createObject(arrOfKeys, arrOfData), которая принимает аргументами два массива, и возвращает
объект, в котором названия ключей это строки из массива arrOfKeys, а значения - элементы из массива arrOfData.
В ключ, стоящий на первом месте массива arrOfKeys должно быть записано значение, стоящее на первом месте arrOfData.
Если данных меньше, чем ключей, заполняй значения ключей как undefined. Пример работы:
createObject(['foo'], ['bar']); // {foo: 'bar'}
createObject(['foo', 'extra'], ['bar']); // {foo: 'bar', extra: undefined}
Реализовать функцию sumOnly100Plus, которая принимает аргументом массив, и возвращает сумму всех чисел массива,
которые больше 100. В массиве могут быть не только числовые данные, их никак не учитывать. Пример работы:
sumOnly100Plus([150, "200", " ", 30, 300]); // 450