Добро пожаловать на вторую часть подборки статей о задачах по JavaScript. В первой части мы рассмотрели несколько базовых задачек, чтобы разогреть ваши мозги, и в этой статье продолжим с более сложными задачами.
1. Напишите функцию, которая принимает на вход массив чисел и возвращает сумму всех элементов.
Ответ:
function sumArray(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
2. Напишите функцию, которая принимает на вход массив объектов и возвращает массив имен всех объектов.
Ответ:
function getNames(arr) {
let names = [];
for (let i = 0; i < arr.length; i++) {
names.push(arr[i].name);
}
return names;
}
3. Напишите функцию, которая принимает на вход два массива и возвращает массив элементов, которые есть только в одном из них.
Ответ:
function diffArray(arr1, arr2) {
let result = [];
for (let i = 0; i < arr1.length; i++) {
if (arr2.indexOf(arr1[i]) === -1) {
result.push(arr1[i]);
}
}
for (let j = 0; j < arr2.length; j++) {
if (arr1.indexOf(arr2[j]) === -1) {
result.push(arr2[j]);
}
}
return result;
}
4. Напишите функцию, которая принимает на вход массив чисел и возвращает новый массив c тем же количеством элементов, где каждый элемент является произведением всех элементов исходного массива, кроме текущего.
Ответ:
function productArray(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
let newArr = arr.slice(0,i).concat(arr.slice(i+1));
let product = newArr.reduce(function(acc, val) {
return acc * val;
});
result.push(product);
}
return result;
}
5. Напишите функцию, которая принимает на вход объект и возвращает новый объект, в котором ключи и значения поменялись местами.
Ответ:
function reverseObject(obj) {
let newObj = {};
for (let key in obj) {
newObj[obj[key]] = key;
}
return newObj;
}
6. Напишите функцию, которая принимает на вход строку и возвращает ее с каждым словом, начинающимся с большой буквы.
Ответ:
function capitalizeWords(str) {
return str.replace(/\b[a-z]/g, function(char) {
return char.toUpperCase();
});
}
Надеемся, что эти задачи помогли вам улучшить свои навыки программирования на JavaScript. Не забывайте, что практика - лучшая школа. Успехов вам!
С уважением,
Редакция канала "Программист самоучка"