Maxymiser task 05

by Vladimir

HTML

<h2>1. Сложить все аргументы</h2>
<p>Реализуй функцию sum(), которая суммирует все передаваемые ей аргументы. В аргументах могут быть любые данные. Пример работы:<br />
    <code>sum(10, 20); // 30</code>
</p>

<h2>2. Проверить вхождение элементов в массив</h2>
<p>Реализовать функцию isInArray , проверяющую вхождение элементов в массив. Первый аргумент функции - массив, последующие - элементы, вхождение в массив которых проверяется. Функция возвращает true, если все аргументы, кроме первого являются элементами массива. Пример работы:<br />
    <code>isInArray([1], 1); // true<br />
isInArray([1], 1, 2); // false<br />
        isInArray([1, 2], 1, 2); // true</code>
</p>

<h2> 3. Проверить каждый элемент массива на удовлетворение условию</h2>
<p>Реализовать функцию every(arr, func), которая принимает аргументами массив arr и функцию func. Возвращает true, если функция func вернет для каждого элемента массива true. В функцию func нужно передавать аргументами элемет массива, индекс элемента массива и сам массив. Пример как должен работать код:<br />

    <code>// Проверка на то, что все элементы массива - строки<br />
every(['mama', 'mila', 'ramu'], function (arrayItem) {<br />
    return typeof arrayItem === 'string';<br />
}); // true<br />
<br />
// Проверка на то, что все элементы массива больше своих индексов<br />
every([4, 8, 1], function (arrayItem, itemIndex) {<br />
    return arrayItem > itemIndex<br />
}); // false<br />
    </code>
</p>


<h2> 4.Выполнить функции из массива</h2>
<p>Релизовать функцию execFunctions(arrOfFunctions), которая получает аргументом массив функций arrOfFunctions, и возвращает массив, где каждый элемент это результат вызова функции стоящей на индексе, что и элемент. Пример работы:<br />
<code>function return10() {<br />
  return 10;<br />
}<br />
<br />
function returnUser() {<br />
  return {name: "Evgen"};<br />
}<br />
<br />
function empty() {}<br />
    <br />
    execFunctions([return10, returnUser, empty]); // [10, {name:...

CSS

body {
    font-family: Verdana;
}
code {
    display: block;
    padding: 5px;
    background: #EEE;
}

JavaScript

//* 1
function sum() {
	var summ = arguments[0];
  for(var i = 1; i < arguments.length; i++) {
  	summ += arguments[i];
  }
  return summ;
}
//------
//* 2
function isInArray(arr) {
	var exampleArr = arguments[0];
  for(var i =1; i < arguments.length; i++) {
  	var found = false;
  	for(var j = 0; j < exampleArr.length; j++) {
  		if(exampleArr[j] == arguments[i]) {
    		found = true;
    	}
    }
    if(!found) {
    	return false;
    }
  }
  return true;
}
//------
//* 3
function every(arr, func) {
	for(var i = 0; i < arr.length; i++) {
  	if(!func(arr[i], i, arr)) {
    	return false;
    }
  }
  return true;
}
//------
//* 4
function execFunctions(arrOfFunctions) {
	var arr = [];
  for(var i = 0; i < arrOfFunctions.length; i++) {
  if(typeof(arrOfFunctions[i]) == 'function')  {
  	arr.push(arrOfFunctions[i]());
   } 
  }
  return arr;
}
//------
//* 5
function getName(path) {
	var parts = path.split('/');
  var result;
  while(!result) {
  	result = parts.pop();
  }
  return result;
}