Форум программистов, компьютерный форум, киберфорум
Наши страницы

JavaScript

Войти
Регистрация
Восстановить пароль
 
Cdelphi78
129 / 63 / 12
Регистрация: 21.02.2014
Сообщений: 2,524
#1

Нужно как то экранировать массив - JavaScript

16.07.2016, 23:05. Просмотров 146. Ответов 4
Метки нет (Все метки)

Набросал вот такой код, это что то вроде математического теста, сейчас проблема в том что не получается выдавать рандомно знаки математических операций, вернее я создал их массив и вывожу их путем рандомного значения индексов но я не знаю как правильно вставить в сам пример иначе пример некорретный получается.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var n = 8;
    var suc = 0;
    var err = 0;
    var err_log=[];
    var err_example=[];
    var operation=['+','-','*'];
    for(var i=0; i<n; i++) {
    
        var x = parseInt(Math.random()*10+1);
        var y = parseInt(Math.random()*10+1);
        var z = Math.random()*3+1;
        
        
        var exm = x+operation[z]+y+'='; //вот здесь нужно как то вставить рандомный индекс операции то что есть не проходит(
        
        
        var ans = parseInt(prompt(exm));
        
        if (ans==x*y){
            suc++;
        }
        else {
            alert('Неправильно!');
            err++;
            err_log.push(i);
            err_example.push(exm);
        }
    
    }
    
    document.write('Успешно:' + suc +'<br>');
    document.write('Ошибок:' + err +'<br>');
    document.write('Номер строки:' + err_log +'<br>'+'Пример:'+err_example);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2016, 23:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно как то экранировать массив (JavaScript):

Как экранировать код - jQuery
Есть ajax запрос: $.ajax({ type: &quot;GET&quot;, url: &quot;https://example.com&quot;, dataType: &quot;jsonp&quot;, data: {'msg': '...'}, ...

нужно тут экранировать? - PHP
$_GET=isset($_GET)?intval($_GET):'first'; $_GET нужно тут экранировать так? ...

Записать в переменную длинный скрипт, который не нужно будет экранировать от среды разработки - Delphi
Всем привет. Начал работать с сайтом через Delphi, столкнулся с этой проблемой. Во первых, не смотря на конкретный тип объявленной...

Как экранировать переменные? - PHP
ребят подскажите как за экранировать переменные? mysql_query(&quot;insert into log set...

SQLite Как экранировать кавычки? - C++ Builder БД
Есть запрос вида: this-&gt;SQLQuery-&gt;SQL-&gt;Add(&quot;UPDATE `main`.`conf` SET `data`=\&quot;&quot;+this-&gt;Edit5-&gt;Text+&quot;\&quot; WHERE `id`=19;&quot;); ...

Как экранировать кавычки? - Oracle
Совсем недавно начала изучать Oracle. Есть такой кусок кода: EXCEPTION WHEN l_date_old THEN DBMS_OUTPUT.PUT_LINE('Today's...

4
sad67man
596 / 474 / 221
Регистрация: 23.08.2015
Сообщений: 1,171
17.07.2016, 00:11 #2
Cdelphi78,
Javascript
1
var z = Math.floor(Math.random() * operation.length);
0
Cdelphi78
129 / 63 / 12
Регистрация: 21.02.2014
Сообщений: 2,524
17.07.2016, 00:32  [ТС] #3
sad67man,
Bash
1
ReferenceError: operation is not defined
Добавлено через 2 минуты
а нет это я виноват, однако все равно пример какой то несуразный выводится посмотрите сами)
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var n = 8;
    var suc = 0;
    var err = 0;
    var err_log=[];
    var err_example=[];
    var operation=['+','-','*'];
    for(var i=0; i<n; i++) {
    
        var x = parseInt(Math.random()*10+1);
        var y = parseInt(Math.random()*10+1);
        //var z = Math.random()*3+1;
        var z = Math.floor(Math.random() * operation.length);
 
        
        var exm = x+z+y+'='; //вот здесь нужно как то вставить рандомный индекс операции то что есть не проходит(
        
        
        var ans = parseInt(prompt(exm));
        
        if (ans==x*y){
            suc++;
        }
        else {
            alert('Неправильно!');
            err++;
            err_log.push(i);
            err_example.push(exm);
        }
    
    }
    
    document.write('Успешно:' + suc +'<br>');
    document.write('Ошибок:' + err +'<br>');
    document.write('<div style="float:left;">Номер строки:<br>' + err_log.join("<br>") +'</div>'+'<div>Пример:<br>'+err_example.join("<br>")+'</div>');
0
sad67man
596 / 474 / 221
Регистрация: 23.08.2015
Сообщений: 1,171
17.07.2016, 00:43 #4
Cdelphi78, А зачем вы здесь поменяли?
Javascript
1
var exm = x + operation[z] + y + '=';
Добавлено через 6 минут
Либо тогда уже так
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var n = 8;
var suc = 0;
var err = 0;
var err_log = [];
var err_example = [];
var operation = ['+', '-', '*'];
var correct;
for (var i = 0; i < n; i++) {
 
  var x = parseInt(Math.random() * 10 + 1);
  var y = parseInt(Math.random() * 10 + 1);
  var z = operation[Math.floor(Math.random() * operation.length)];
  var exm = x + z + y + '='; //вот здесь нужно как то вставить рандомный индекс операции то что есть не проходит(
  var ans = parseInt(prompt(exm));
  
  switch(z){
    case "+": correct = x+y; break;
    case "-": correct = x-y; break;
    case "*": correct = x*y; break;
  }
  
  if (ans == correct) {
    suc++;
  } else {
    alert('Неправильно!');
    err++;
    err_log.push(i);
    err_example.push(exm);
  }
 
}
 
document.write('Успешно:' + suc + '<br>');
document.write('Ошибок:' + err + '<br>');
document.write('Номер строки:' + err_log + '<br>' + 'Пример:' + err_example);
https://jsfiddle.net/8ec62944/1/
0
Cdelphi78
129 / 63 / 12
Регистрация: 21.02.2014
Сообщений: 2,524
17.07.2016, 12:36  [ТС] #5
да не нужно было менять, все работает теперь, однако я не никак не пойму почему до этого не работало
0
17.07.2016, 12:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2016, 12:36
Привет! Вот еще темы с ответами:

Как экранировать кавычки? - Visual Basic .NET
Подскажите пожалуйста как в vb в строке экранировать кавычки?)) &quot;Моя строка &quot; с кавычкой&quot; пытался использовать \ как в php а не работает...

Как экранировать решётку? - PHP
Хочу написать скрипт для редактирования ссылок, но при редактировании ссылки #1111 получаю такую ошибку: Warning: preg_replace() : No...

Как тут про экранировать? - PHP
подскажите как за экранировать $table, $clause function get_sql_count($table,$clause='') { if ($clause!='') $clause=&quot;where...

Как экранировать слеш для char? - C++
Привет всем.. Подскажите как сравнить значение char со слешем? Вот так не работает( char *buf = new char ; if (buf == '\') ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru