|
Блог шахматиста, новичка в программировании
Здравствуйте.
Я решил учиться программированию. Начинаю с нуля, уже пару месяцев учусь. Надеюсь, здесь можно вести свой блог. Последней моей профессией была игра в онлайн-покер. Ранее я занимался дизайном (полиграфии). И ещё я люблю шахматы (кандидат в мастера). Вот мой шахматный канал на 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", не подскажете? |
Можно и проще
var n = 8900; alert(Number(n.toString().split('').reverse().join(''))) |
Сильно, laimas)
Хотя на том ресурсе подразумевалось, что набор знакомых решателям методов очень ограничен. В частности, с массивами они ещё не знакомы. И т. п. Но всё равно, конечно, сильно. Вот разве что, похоже, Ваш метод выдаёт "NaN" на отрицательных числах. |
Цитата:
|
Цитата:
|
Цитата:
Видимо, для того, чтобы сделать корректный экспорт мне нужны два файла, что ли - один, из к-рого экспорт; и другой, куда импортируем? И всего этого на 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; } |
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!')); |
Цитата:
return str.replace(/.?/g, function(v) { return v == v.toLowerCase() ? v.toUpperCase() : v.toLowerCase() }) А, length же не у дел остался. :) |
Между тем начинаю новый день учёбы с решения ещё одной задачки.
Условие: Преобразование 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; } |
Allegro75,
если что - то повторяется(else if ), может попробовать, это сократить? 5 советов как лучше писать условные конструкции в JavaScript |
Часовой пояс GMT +3, время: 10:11. |
|