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;
}