Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2018, 17:38
Интересующийся
Отправить личное сообщение для Cfifsasaasas Посмотреть профиль Найти все сообщения от Cfifsasaasas
 
Регистрация: 22.01.2018
Сообщений: 19

попалась интересная задача по js , кто шарит
Массив строк клавиатуры преобразовать в объект keyboard следующего формата.
const keyboard = {
layouts: {
en: {
topRow: [],
middleRow: [],
bottomRow: []
},
ru: {
topRow: [],
middleRow: [],
bottomRow: []
},
ua: {
topRow: [],
middleRow: [],
bottomRow: []
}
},
langs: ['en', 'ru', 'ua'],
currentLang: ''
};

Написать скрипт который на старте спрашивает пользователя какой язык он хочет использовать на тренажере. Это обычный prompt в котором написано en-0, ru-1, ua-2. Пользователь вводит 0, 1 или 2, если введено другое значение то вывести alert о том что был выбран не доступный язык и повторить prompt до того момента пока не будет введено подходящее значание языка или нажат cancel. При cancel прекратить выполнение скрипта.

Результат выбора языка пользователем записать в обьект keyboard в поле currentLang как строку, 0 это en, 1 это ru, 2 это ua.

Модифицировать функцию getRandCharInAlph() так, чтобы она возвращала случайную букву из выбраного пользователем алфавита.
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2018, 23:00
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,735

А что в задаче интересного?
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2018, 08:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,184

Сообщение от Nexus
А что в задаче интересного?
Ты видать не шаришь...
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2018, 09:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,735

ksa, похоже на то

//Вероятно самая сложная часть скрипта
var lang=-1;
while(lang!==null && [0,1,2].indexOf(+lang)==-1)
    lang=prompt('Choose language (0-2)',0);

if(lang===null)
    return;
    
console.log(lang);
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2018, 09:52
Интересующийся
Отправить личное сообщение для Cfifsasaasas Посмотреть профиль Найти все сообщения от Cfifsasaasas
 
Регистрация: 22.01.2018
Сообщений: 19

Nexus,
я в этой задаче знаю только массив массивов клавиатурных строк как сделать , дальше полный ноль((
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2018, 10:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,735

Cfifsasaasas, ну так заполните массив.
Как предложить пользователю выбрать язык я уже написал, чутка его допилить и подойдет под условия вашей задачи.
Функция "getRandCharInAlph" - строка кода.
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2018, 10:21
Интересующийся
Отправить личное сообщение для Cfifsasaasas Посмотреть профиль Найти все сообщения от Cfifsasaasas
 
Регистрация: 22.01.2018
Сообщений: 19

Nexus,
Допилить звучит страшно(
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2018, 10:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,753

Сообщение от Nexus
Функция "getRandCharInAlph" - строка кода
Тем более, она уже была
Добрый день нужна помощь в задании
Ответить с цитированием
  #9 (permalink)  
Старый 26.01.2018, 10:52
Интересующийся
Отправить личное сообщение для Cfifsasaasas Посмотреть профиль Найти все сообщения от Cfifsasaasas
 
Регистрация: 22.01.2018
Сообщений: 19

Dilettante_Pro,
ну вот есть код и его надо дополнить по сути


let kb = {
elements: document.getElementsByTagName('li'),
strEn: "qwertyuiop[]asdfghjkl;'zxcvbnm,./",
strRu: "йцукенгшщзхъфывапролджэя смитьбю.",
strUa: "йцукенгшщзхїфівапролджєя смитьбю.",
language: ['strEn', 'strRu', 'strUa'],
current: "strEn",
fillKb(lang) {
let li = [...this.elements];
//подставить
li.map((elem, i) => elem.textContent = this[lang][i]);
},
changeCurrent(num) {
if(Number.isInteger(num)) {
let digit = num > 0 ? num : -num;
let n = digit % 3;
// подставить
this.current = this.language[num];
}
else {
this.current = "strEn";
console.log("Введите число от 0 до 2-х");
}
}
}
function run () {
kb.fillKb(kb.current);
};
run();
function go(){
// prompt
let num = 2;
kb.changeCurrent(num);
}
go();
run();
Ответить с цитированием
  #10 (permalink)  
Старый 26.01.2018, 10:54
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,735

Cfifsasaasas,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS задача. Взаимно простые числа sashok Общие вопросы Javascript 5 23.11.2014 10:16
Интересная задача: CheckBox + Span angek Элементы интерфейса 16 27.02.2013 15:22
Вопрос тем кто сталкивался с JS в Joomla 2.5 pulmar Элементы интерфейса 4 17.02.2013 19:40
Задача по JS Gambit228 Работа 8 08.01.2013 19:28
Интересная задача для javascript bobri4 Общие вопросы Javascript 4 16.07.2011 13:08