Maxymiser task 03
by Vladimir
HTML
<h2>Просуммировать числа из массива, которые больше 100</h2>
<p>Реализовать функцию sumOnly100Plus, которая принимает аргументом массив, и возвращает сумму всех чисел массива, которые больше 100. В массиве могут быть не только числовые данные, их никак не учитывать.</p>
<h2>Отфильтровать элементы массива с нечетным индексом</h2>
<p>Реализовать функцию extractOddItems(arr), которая возвращает новый массив, в котором содержатся только те элементы, которые обладали нечетным индексом в массиве, переданном в качестве аргумента. Пример работы:</p>
<code>extractOddItems([0,1,0,1,0,1]); // [1,1,1]<br />
extractOddItems([1,2,3,4,5]); [2, 4]</code>
<h2>Проверить является ли один массив подмножеством второго</h2>
<p>Дописать функцию contains(where, what). Если все элементы массива what содержатся в массиве where, функция должна возвращать true. Пустой массив является подмножеством любого массива. Порядок вхождения элементов в массив не имеет значения. Примеры:</p>
<code>contains([1,2,3], [3,2]); // true</code>
<h2>Объединить объекты</h2>
<p>Реализовать функцию extend(obj1, obj2), которая скопирует свойства из объекта obj2 в объект obj1. Функция должна возвращать obj1. Значения одинаковых ключей должны перетирать оригинальные. Пример:</p>
<code>extend({foo: 'bar', baz: 1}, {foo: true, zoop: 0}); // {foo: true, baz: 1, zoop: 0}</code>
<h2>Создать объект из массивов данных</h2>
<p>Реализовать функцию createObject(arrOfKeys, arrOfData), которая принимает аргументами два массива, и возвращает объект, в котором названия ключей это строки из массива arrOfKeys, а значения - элементы из массива arrOfData. В ключ, стоящий на первом месте массива arrOfKeys должно быть записано значение, стоящее на первом месте arrOfData. Если данных меньше, чем ключей, заполняй значения ключей как undefined. Пример работы:</p>
<code>createObject(['foo'], ['bar']); // {foo: 'bar'}<br />
createObject(['foo', 'extra'], ['bar']); // {foo: 'bar', extra: undefined}</code>
CSS
body {
font-family: Verdana, sans-serif;
}
code {
padding: 5px;
background: #EEE;
border:1px solid #888;
border-radius: 3px;
margin: 5px 10px;
display: block;
}
JavaScript
function sumOnly100Plus(arr) {
var sum = 0;
for(var i = 0; i < arr.length; i++) {
if(typeof(arr[i]) == 'number' && arr[i] > 100) {
sum += arr[i];
}
}
return sum;
}
//--------
function extractOddItems(arr) {
var resultArray = [];
for(var i = 1; i < arr.length; i+=2) {
resultArray.push(arr[i]);
}
return resultArray;
}
//---------
function contains(where, what) {
for(var i = 0; i < what.length; i++) {
if(where.indexOf(what[i]) == -1) {
return false;
}
}
return true;
}
//-------
function extend(obj1, obj2) {
for(var i in obj2) {
obj1[i] = obj2[i];
}
return obj1;
}
//-----
function createObject(arrOfKeys, arrOfData) {
var generatedObj = {};
for(var i = 0; i < arrOfKeys.length; i++) {
generatedObj[arrOfKeys[i]] = arrOfData[i];
}
return generatedObj;
}