Обзор легких практических вопросов по JavaScript II - запись решений

RedDeveloper
25.04.2023 14:03
Обзор легких практических вопросов по JavaScript II - запись решений

После решения первого раунда из 10 вопросов несколько дней назад, я почувствовал, что немного открыл свою вторую чакру, поэтому следующие 7 вопросов прошли более гладко и приятно ~ (о важности тренировки мозговой деятельности?)

  1. Напишите функцию reverse, аргументом которой будет строка, а возвращаемым значением - обратная строка.
function reverse(str) {
  let str2 = ''
  for(let i = str.length - 1; i >= 0; i--) {
    str2 += str[i]
  }
   console.info(str2)
}

reverse("abcd"); // returns "dcba"
reverse("I am a good guy."); // returns ".yug doog a ma I"

2. напишите функцию swap с аргументом String и возвращаемым значением String с инверсией регистра.

function swap(str) {
  let str2 = ''
  for(let i = 0; i < str.length - 1; i++) {
    if (str[i] === str[i].toUpperCase()) {
      str2 += str[i].toLowerCase()
    } else {
      str2 += str[i].toUpperCase()
    } 
  }
  console.info(str2)
}

swap("Aloha"); // returns "aLOHA"
swap("Love you."); // returns "lOVE YOU."

3. Напишите функцию isPrime, которая принимает целое число в качестве аргумента и возвращает булево значение, которое говорит нам, является ли аргумент простым.

function isPrime(num) {
  
  if (num === 1) {
    return false
  }
  
  for(let i = 2; i < num; i++) {
    if (num % i === 0) {
      return false
    }  
  }
  return true
}

console.info(isPrime(1)); // returns false
console.info(isPrime(2)); // returns true
console.info(isPrime(5)); // returns true
console.info(isPrime(91)); // returns false
console.info(isPrime(1000000)); // returns false

Палиндром - это предложение, которое читается одинаково как в прямом, так и в обратном направлении. Например: [Шанхайская вода приходит из моря] - это палиндром. Напишите функцию palindrome, которая принимает в качестве аргумента строку String и возвращает булево значение, говорящее нам, является ли аргумент палиндромом или нет.

function palindrome(str) {
  
  let str2 = ''
  for(let i =  str.length -1; i >= 0; i--) {
    str2 += str[i]
  }

  if (str === str2) {
    return true
  } else {
    return false
  }
}

console.info(palindrome("bearaeb")); // true
console.info(palindrome("whatever revetahw")); // true
console.info(palindrome("Aloha, how are you today?")); // false

5. Напишите функцию под названием pyramid, которая распечатывает слой звезды по следующей схеме:

pyramid(1);
//*
pyramid(2);
//  *
// ***
pyramid(4);
//    *
//   ***
//  *****
// *******
function printStars(space, star) {
  let result = ''
  
  for(let i = 0; i < space; i++) {
    result += ' '
  }

  for(let j = 0; j < star; j++) {
    result += '*'
  }
  
  console.info(result)
}

function pyramid (n) {
  let space = n-1
  let star = 1
  while (space >= 0) {
    printStars(space, star)
    star += 2
    space --
  }
}

pyramid(2)
console.info('\n')
pyramid(4);
console.info('\n')
pyramid(6);
console.info('\n')

6. напишите функцию inversePyramid, которая выводит звездчатый слой по следующей схеме:

inversePyramid(4);
// *******
//  *****
//   ***
//    *
function printStars(space, star) {
  let result = ''
  
  for(let i = 0; i < space; i++) {
    result += ' '
  }

  for(let j = 0; j < star; j++) {
    result += '*'
  }
  
  console.info(result)
}

function inversePyramid(n) {
  let space = 0
  let star = (n * 2) - 1
   while (space <= n + 1) {
    printStars(space, star)
    star -= 2
    space ++
  }
}

inversePyramid(4);
// *******
//  *****
//   ***
//    *
console.info('\n')
inversePyramid(10);

7. напишите функцию factorPrime, единственным параметром которой является целое число n, а возвращаемым значением - строка, представляющая результат простой факторизации n.

function factorPrime(n) {
  let res = []
  let i = 2
  let result = n + ' = '

  while (i <= n) {
    if (n % i === 0) {
      res.push(i)
      n = n / i
    } else {
      i++
    }
  }
  // console.info(res)
  
  let answer = ''
  for(let i = 0; i < res.length; i++) {
    answer = answer + res[i] + ' x '   
  }
  
  console.info(result + answer.slice(0 , answer.length - 3))
}

factorPrime(14) // returns "14 = 2 x 7"

Впереди еще задачи для начинающих и среднего уровня! Однако я все еще застрял на двух задачах. В процессе их решения я чувствую, что у меня очень своеобразный способ мышления. Однако после того, как я решил их один раз, я обнаружил, что в моем мышлении есть довольно много различий, когда я снова посмотрел решения учителя, что, кажется, делает процесс слишком сложным. (Хотя это означает, что я могу узнать еще один способ, как это сделать...)

Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?

05.05.2023 14:00

Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.

Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом

05.05.2023 11:59

Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.

JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы

05.05.2023 11:57

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.

Массив зависимостей в React
Массив зависимостей в React

05.05.2023 09:44

Все о массиве Dependency и его связи с useEffect.