Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2019, 20:09
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Блог шахматиста, новичка в программировании
Здравствуйте.

Я решил учиться программированию.
Начинаю с нуля, уже пару месяцев учусь.
Надеюсь, здесь можно вести свой блог.

Последней моей профессией была игра в онлайн-покер.
Ранее я занимался дизайном (полиграфии).
И ещё я люблю шахматы (кандидат в мастера).
Вот мой шахматный канал на youtube - https://www.youtube.com/channel/UCCN...NqvsJK9rd4PpMQ

Мне интересны любые отклики, советы, рекомендации и т. п.
Интересны поскольку я совсем нуб, и вообще-то достаточно смутно представляю себе даже собственно то, чему я хочу научиться)
Цель размыта, она примерно такова - зарабатывать деньги программированием (или чем-то на него похожим)).

Пока мне интересно освоить HTML, CSS и JavaScript.
(PHP, может быть (хотя я не вполне понимаю, зачем он нужен)))
То есть мне хочется уметь делать сайты.
Интернет я люблю, и хотя бы как пользователь понимаю, что это такое).

...

Сейчас среди прочего я решил решать задачки по JavaScript, к-рые нашёл на одном обучающем ресурсе (не знаю, можно ли тут его называть), и за проверку к-рых там уже просят денег.
(А я хочу обучаться по возможности бесплатно)

вот первая из этих задачек:

"
Реализуйте и экспортируйте по умолчанию функцию reverseInt, которая переворачивает цифры в переданном числе и возвращает новое число.

reverseInt(13); // 31
reverseInt(-123); // -321
reverseInt(8900); // 98
"


Вот моё решение:
const reverseInt = (num) => { 
  if (num >= 0) {
    let index = 0;
    let resultStr = '';
    let initStr = num.toString();

    while (index < initStr.length) {
      resultStr = `${initStr[index]}${resultStr}`;
      index += 1;
    }
    return Number(resultStr);
  }

  else {
  let index = 1;
  let resultStr = '';
  let initStr = num.toString();

  while (index < initStr.length) {
      resultStr = `${initStr[index]}${resultStr}`;
      index += 1;
    }
  return (Number(resultStr)) * -1;
  }
}


Я делал и проверял это на repl.it, вроде бы работает.

Проблемы возникли разве что с экспортом по умолчанию.

Я пытался писать первую строку так:
export default function reverseInt(num) {

и это не пролезало.

В ответ на это пишут:
evalmachine.<anonymous>:2
export default function reverseInt(num) {
^^^^^^

SyntaxError: Unexpected token export

и ещё много строчек.

Что не так с моим "export default", не подскажете?

Последний раз редактировалось Allegro75, 18.03.2019 в 18:43.
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2019, 20:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Можно и проще

var n = 8900;
alert(Number(n.toString().split('').reverse().join('')))
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2019, 21:15
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Сильно, laimas)

Хотя на том ресурсе подразумевалось, что набор знакомых решателям методов очень ограничен.
В частности, с массивами они ещё не знакомы. И т. п.

Но всё равно, конечно, сильно.

Вот разве что, похоже, Ваш метод выдаёт "NaN" на отрицательных числах.
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2019, 21:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Allegro75
метод выдаёт "NaN" на отрицательных числах
Math.abs()
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2019, 21:36
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Allegro75
Что не так с моим "export default", не подскажете?
Экспорты подключаются через импорты, например.
Ответить с цитированием
  #6 (permalink)  
Старый 16.03.2019, 18:44
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Сообщение от Rise Посмотреть сообщение
Экспорты подключаются через импорты, например.
Не понимаю я пока этого.
Видимо, для того, чтобы сделать корректный экспорт мне нужны два файла, что ли - один, из к-рого экспорт; и другой, куда импортируем?
И всего этого на repl.it не сделать?..

...

А пока решил ещё одну задачку:

"
Реализуйте и экспортируйте по умолчанию функцию invertCase, которая меняет в строке регистр каждой буквы на противоположный.

invertCase('Hello, World!'); // hELLO, wORLD!
invertCase('I loVe JS'); // i LOvE js

...используйте свойство length...
...используйте метод toUpperCase...
...используйте метод toLowerCase...

"

Решил так:
const invertCase = (str) => {  
  let index = 0;
  let result = '';
  let lowerStr = str.toLowerCase();
  let upperStr = str.toUpperCase();
  for (; index < str.length; index += 1){
    if (str[index] === lowerStr[index]) {
      result = `${result}${upperStr[index]}`;
    }
    else
    result = `${result}${lowerStr[index]}`;
  }
  return result;
}
Ответить с цитированием
  #7 (permalink)  
Старый 16.03.2019, 20:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Allegro75,
чуть покороче ...
const invertCase = (str) => {
    let index = 0;
    let result = '';
    let lowerStr = str.toLowerCase();
    let upperStr = str.toUpperCase();
    for (; index < str.length; index++){
        if (str[index] === lowerStr[index]) {
            result += upperStr[index];
        }
        else result += lowerStr[index];
    }
    return result;
}
alert(invertCase('Hello, World!'));

Последний раз редактировалось рони, 16.03.2019 в 20:17.
Ответить с цитированием
  #8 (permalink)  
Старый 16.03.2019, 20:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
чуть покороче ...
Можно еще короче

return str.replace(/.?/g, function(v) {
    return v == v.toLowerCase() ? v.toUpperCase() : v.toLowerCase()  
})


А, length же не у дел остался.
Ответить с цитированием
  #9 (permalink)  
Старый 18.03.2019, 18:42
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Между тем начинаю новый день учёбы с решения ещё одной задачки.

Условие:
Преобразование DNA в RNA
"ДНК и РНК это последовательности нуклеотидов.
Четыре нуклеотида в ДНК это аденин (A), цитозин (C), гуанин (G) и тимин (T).
Четыре нуклеотида в РНК это аденин (A), цитозин (C), гуанин (G) и урацил (U).
Цепь РНК составляется на основе цепи ДНК последовательной заменой каждого нуклеотида:
G -> C
C -> G
T -> A
A -> U
Реализуйте и экспортируйте функцию по умолчанию, которая принимает на вход цепь ДНК и возвращает соответствующую цепь РНК (совершает транскрипцию РНК).

Если во входном параметре нет ни одного нуклеотида (т.е. передана пустая строка), то функция должна вернуть пустую строку.

Если в переданной цепи ДНК встретится "незнакомый" нуклеотид (не являющийся одним из четырех перечисленных выше), то функция должна вернуть null.

dnaToRna('ACGTGGTCTTAA'); // 'UGCACCAGAAUU'
dnaToRna('CCGTA'); // 'GGCAU'
dnaToRna(''); // ''
dnaToRna('ACNTG'); // null

Подсказки
Длина строки str находится так: str.length

"

Решение:
const dnaToRna = (dna) => {
  let index = 0;
  let result = '';
  for (; index < dna.length; index +=1) {
    if (dna[index] === 'G') {
      result += 'C';
    }
    else if (dna[index] === 'C'){
      result += 'G';
    }
    else if (dna[index] === 'T'){
      result += 'A';
    }
    else if (dna[index] === 'A'){
      result += 'U';
    }
    else return null;
  } return result;
}
Ответить с цитированием
  #10 (permalink)  
Старый 18.03.2019, 18:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Allegro75,
если что - то повторяется(else if ), может попробовать, это сократить?
5 советов как лучше писать условные конструкции в JavaScript

Последний раз редактировалось рони, 18.03.2019 в 19:52.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактор для добавления постов в блог через админку kaurav Node.JS 2 05.11.2017 16:44
Новый чат блог форум с нуля - ваши пожелания Minimus Оффтопик 0 15.08.2015 09:25
Мой авто блог loodsine Ваши сайты и скрипты 3 09.08.2011 02:49
Оцените блог VL.VG Regent Ваши сайты и скрипты 8 10.01.2010 18:05