|
Блог шахматиста, новичка в программировании
Здравствуйте.
Я решил учиться программированию. Начинаю с нуля, уже пару месяцев учусь. Надеюсь, здесь можно вести свой блог. Последней моей профессией была игра в онлайн-покер. Ранее я занимался дизайном (полиграфии). И ещё я люблю шахматы (кандидат в мастера). Вот мой шахматный канал на 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, время: 12:27. |
|