Упражнение по написанию кода 12: Задачи на работу с массивами, часть 2

Задания


3) Задача с собеседований. Напишите функцию reverse, которая принимает в себя строку и возвращает эту строку в обратном порядке.

Пример:

const someString = 'This is some strange string'; 

reverse(someString) => 'gnirts egnarts emos si sihT'


4) Представьте такую реальную ситуацию. У вас есть банкомат, который выдает деньги из двух разных банков в разных валютах. Один банк основной с базовыми валютами, второй дополнительный с прочими валютами:

Код
const baseCurrencies = ['USD', 'EUR'];
const additionalCurrencies = ['UAH', 'RUB', 'CNY'];

Вам нужно создать главную функцию банкомата availableCurr, которая принимает два аргумента: первый - это массив со всеми доступными валютами из двух банков сразу (сейчас представим, что они не могут повторяться), второй - необязательный аргумент, который указывает ту валюту, которая сейчас закончилась в банкомате. Если массив в первом аргументе пустой - то функция возвращает строку 'Нет доступных валют'. Функция возвращает строку в нужном виде.

Пример:

Код
availableCurr(['UAH', 'RUB', 'CNY'], 'CNY')

Вернет строку:

Цитата
Доступные валюты:
UAH
RUB

Заметьте:

- CNY (юань) исчез из списка валют, значит такая валюта закончилась

- После валюты: стоит перенос строки \n, и после каждой валюты тоже. Это важно для тестов

- Данные для первого аргумента должны приходить сразу из двух банков, причем сначала baseCurrencies, потом additionalCurrencies по порядку

Код
const someString = 'This is some strange string';

function reverse(str) {

}

const baseCurrencies = ['USD', 'EUR'];
const additionalCurrencies = ['UAH', 'RUB', 'CNY'];

function availableCurr(arr, missingCurr) {

}

Решение


Код
const someString = "This is some strange string";

function reverse(str) {
  if (typeof str === "string") {
  const newStr = str.split("");
  return newStr.reverse().join("");
  } else {
  return "Ошибка!";
  }
}

reverse(someString); // gnirts egnarts emos si sihT

Вариант второй:

Код
const someString = "This is some strange string";

function reverse(str) {
  let newStr = "";
  if (typeof str === "string") {
  for (let i = str.length - 1; i >= 0; i--) {
  newStr += str[i];
  }
  } else {
  newStr += 'Ошибка!';
  }

  return newStr;
}

Решение задачи 4:

Код
const baseCurrencies = ["USD", "EUR"];
const additionalCurrencies = ["UAH", "RUB", "CNY"];

const allCurrencies = [...baseCurrencies, ...additionalCurrencies];

function availableCurr(arr, missingCurr) {
  let currencies = "Доступные валюты:\n";
  if (arr.length > 0) {
  arr.forEach((item) => {
  if (item != missingCurr) {
  currencies += item + "\n";
  }
  });
  return currencies;
  } else {
  return "Нет доступных валют";
  }
}

Всего комментариев: 1

Алексей 01.07.2025 в 00:37 / Материал
Решения преподавателя:

Код
const someString = 'This is some strange string';

function reverse(str) {
  if (typeof(str) !== 'string') {
  return "Ошибка!";
  }
  // Самый оптимальный вариант решения
  return str.split('').reverse().join('');

  // Решение при помощи цикла
  // let newStr = '';
  // for (let i = str.length - 1; i >= 0; i--) {
  //  newStr += str[i];
  // }
  // return newStr
}

reverse(someString);

const baseCurrencies = ['USD', 'EUR'];
const additionalCurrencies = ['UAH', 'RUB', 'CNY'];

function availableCurr(arr, missingCurr) {
  let str = '';
  arr.length === 0 ? str = 'Нет доступных валют' : str = 'Доступные валюты:\n';

  arr.forEach(function(curr, i) {
  if (curr !== missingCurr) {
  str += `${curr}\n`;
  }
  });

  // Или
  // for (let i = 0; i < arr.length; i++) {
  //  if (arr[i] === missingCurr) {
  //  continue;
  //  }
  //  str += `${arr[i]}\n`;
  // }

  return str;
}

availableCurr([...baseCurrencies, ...additionalCurrencies], 'CNY')
0
Имя *:
Email *:
Код *:
Хостинг от uCoz