Задачи для решения

На forEach

Для решения задач данного блока вам понадобятся следующие методы: forEach.

Дан массив с числами. Создайте новый массив, состоящий из квадратов этих чисел.

Решение:

var arr = [5, 6, 7, 8, 9];
var newArr = [];
arr.forEach(function(elem) {
	newArr.push(elem * elem);
});
alert(newArr)     

Дан массив с числами. Найдите сумму этих чисел.

Решение:

var arr = [5, 6, 7, 8, 9];
var sum = 0;
arr.forEach(function(elem) {
	sum += elem;
});
alert(sum)     

На map

Для решения задач данного блока вам понадобятся следующие методы: map.

Дан массив с числами. Сделайте из него массив, состоящий из квадратов этих чисел.

Решение:

var arr = [5, 6, 7, 8, 9];
var newArr = arr.map(function(elem) {
	return elem * elem;
});
alert(newArr);   

На every, some

Для решения задач данного блока вам понадобятся следующие методы: every, some.

Дан массив с числами. Проверьте то, что все элементы в массиве больше нуля.

Решение:

var arr = [5, 6, 7, 8, 9];
function func(elem){return elem > 0};
alert(arr.every(func));  

Дан массив с числами. Проверьте то, что в нем есть отрицательные элементы.

Решение:

var arr = [5, 6, -7, 8, 9];
function func(elem){return elem < 0};
alert(arr.some(func));  

На filter

Для решения задач данного блока вам понадобятся следующие методы: filter.

Дан массив с числами. Оставьте в нем только отрицательные числа.

Решение:

var arr = [1, -3, 5, 6, -7, 8, 9, -11];
function func(elem){return elem < 0};
var newArr = arr.filter(func);
alert(newArr);  

Дан массив с числами. Оставьте в нем только четные числа.

Решение:

var arr = [1, -3, 5, 6, -7, 8, 9, -11];
function func(elem){return elem % 2 == 0};
var newArr = arr.filter(func);
alert(newArr);  

Дан массив со строками. Оставьте в нем только те строки, длина которых больше 5-ти символов.

Решение:

var arr = ['aaa', 'aaaqqq', 'zzzqq', 'zz', 'qsaa', 'q', 'az'];
function func(elem){return elem.length > 5};
var newArr = arr.filter(func);
alert(newArr);  

Дан массив, в нем могут быть обычные элементы и подмассивы, например [1, 2, [3, 4], 5, [6, 7]]. Оставьте в нем только подмассивы.

Решение:

var arr = [1, 'string', [3, 4], 5, [6, 7]];
function func(elem){return Array.isArray(elem)};
var newArr = arr.filter(func);
alert(newArr);  

Дан массив с числами. Посчитайте количество отрицательных чисел в этом массиве.

Решение:

var arr = [5, -3, 6, -5, 0, -7, 8, 9];
function func(elem){return elem < 0};
var newArr = arr.filter(func);
alert(newArr.length);  

На reduce, reduceRight

Для решения задач данного блока вам понадобятся следующие методы: reduce, reduceRight.

Дан массив с числами. Найдите сумму этих чисел.

Решение:

var arr = [5, -3, 6, -5, 0, -7, 8, 9];
var result = arr.reduce(function(sum, elem) {
	return sum + elem;
});
alert(result);  

Дан массив с числами. Найдите сумму первых N элементов до первого нуля. Пример: [1, 2, 3, 0, 4, 5, 6] - суммируем первые 3 элемента, так как дальше стоит элемент с числом 0.

Решение:

var arr = [1, 2, 3, 0, 4, 5, 6];
var answer = 0;
var result = arr.reduce(function(sum, elem) {
	if (elem == 0) {
		answer = sum;
	} else {
		return sum + elem;
	}
});
if(answer == undefined){answer = result};
alert(answer);  

Дан массив с числами. Найдите сумму последних N элементов до первого нуля с конца. Пример: [1, 2, 3, 0, 4, 5, 6] - суммируем последние 3 элемента, так как дальше стоит элемент с числом 0.

Решение:

var arr = [1, 2, 3, 0, 4, 5, 6];
var answer = 0;
var result = arr.reduceRight(function(sum, elem) {
	if (elem == 0) {
		answer = sum;
	} else {
		return sum + elem;
	}
});
if(answer == undefined){answer = result};
alert(answer);  

Дан массив с числами. Узнайте сколько элементов с начала массива надо сложить, чтобы в сумме получилось больше 10-ти.

Решение:

var arr = [1, 2, 3, 0, 4, 5, 6];
var num = 1;
var result = arr.reduce(function(sum, elem) {
	if (sum > 10) {
		alert(num);
		return;
	} else {
		num++;
		return sum + elem;
	}
}); 

Дан массив с числами. Узнайте сколько элементов с конца массива надо сложить, чтобы в сумме получилось больше 10-ти.

Решение:

var arr = [1, 2, 3, 0, 4, 5, 6];
var num = 1;
var result = arr.reduceRight(function(sum, elem) {
	if (sum > 10) {
		alert(num);
		return;
	} else {
		num++;
		return sum + elem;
	}
}); 

Закрепление

Дан массив с числами. Оставьте в нем только положительные числа. Затем извлеките квадратный корень и этих чисел.

Решение:

var arr = [1, -2, 3, 0, 4, -5, 6, -11];
function func(elem){return elem > 0};
var arrTemp = arr.filter(func);

var result = arrTemp.map(function(elem) {
	return Math.sqrt(elem);
});
alert(result);