Ошибка math.js: неизвестный тип tring

Я получаю сообщение об ошибке: unknown type "tring" ( throw new Error('Unknown type "' + name + '"' + ', math.js (line 751, col 16)) с math.js . Такая же ошибка возникла у math.min.js . я скачал math.js пакет из репозитория https://github.com/josdejong/mathjs и распаковал в C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\sym\crm\web\js\mathjs\

Ошибка возникла при добавлении одной строки в javascript:

var parser = math.parser();

который взят из официального примера: http://mathjs.org/docs/expressions/parsing.html#parse

Других библиотек, кроме jQuery, нет. Если я просматриваю файл math.js, я не нахожу никакой переменной "tring".

Это родительский шаблон проекта Symfony.

C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\sym\crm\src\CrmBundle\Resources\views\basePlotCalc.html.twig

   {% block javascripts %}  
    <script src="{{ asset('js/jquery-2.2.3.min.js') }}"></script>
    <script src="{{ asset('js/mathjs/dist/math.js') }}"></script> 
   {% endblock %}  {# javascripts#}

person olga    schedule 13.09.2016    source источник
comment
Вы можете показать больше вашего html? например, как вы загружаете библиотеку, возможно, вы загружаете не тот файл. У меня это работает: jsfiddle.net/k8h98dpg   -  person Roland Starke    schedule 13.09.2016
comment
Как вы можете видеть здесь, jsfiddle.net/myw2L702 простое добавление библиотеки и вызов этого метода не приводит к ошибкам. Вы должны начать искать в другом месте, как указал Роланд.   -  person Matt    schedule 13.09.2016
comment
я скорректировал вопрос. Напишу больше через минуту после проверки, если я загружу правильный файл   -  person olga    schedule 13.09.2016
comment
Попробуйте записать 'sum('+list.toString()+')' перед math.parse.   -  person Alex Kudryashev    schedule 13.09.2016
comment
math.eval('a * b', { a: 3, b: 4 } ) ); незакрытая скобка...   -  person Meirion Hughes    schedule 13.09.2016
comment
Я загружаю нужный файл. Я проверил, добавив console.log('C:\\Bitnami\\wampstack-5.6.20-0\\apache2\\htdocs\\sym\\crm\\web\\js\\mathjs\\dist\\math.js'); сверху. Он печатает строку. Теперь у меня нет ошибок, кроме ошибки ReferenceError: parser is not defined, если я использую строку var parser = math.parser(); console.log('It works!', parser.eval('sqrt(3^2 + 4^2)'));   -  person olga    schedule 13.09.2016
comment
извините, иногда, когда я копирую, я пишу вместо копирования. Исходный файл без ошибок.   -  person olga    schedule 13.09.2016
comment
Почему я получаю ошибку parser is not defined? используя код var parse = math.parser();   -  person olga    schedule 13.09.2016
comment
Эту ошибку можно исправить, включив парсер в активы: ‹script src={{ assets('js/mathjs/lib/expression/Parser.js') }}›‹/script› . Тем не менее, более поздние всплывающие ошибки, связанные с require, что, скорее всего, является синтаксисом node.js, пока я работаю с Apache, php и js.   -  person olga    schedule 13.09.2016


Ответы (2)


Теперь, через некоторое время, я обнаружил, что ошибка возникла из-за того, что я предоставляю не строку для анализа, а пытаюсь сделать строку в скобках для разбора. См. примеры ниже. Кажется, раньше эта ошибка оставалась в памяти браузера, и мне казалось, что она возникла из-за var parser = math.parser();, который я пробовал позже (я имею в виду, что сначала я попробовал парсить (строковое выражение), получил ошибку и не заметил, а затем я попробовал парсер , и похоже, что ошибка возникла из-за него).

C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\sym\crm\src\CrmBundle\Resources\views\moinpl\m1i1LoadJs1d.html.twig
        {% block javascripts %}  {{   parent() }}
        <script>
        window.onload = ( function() {

var parser = math.parser(); // now gives error parser is not defined. 

var list = [10, 20, 60]; 
var node = math.parse( 'sum('+list.toString()+')' );  //gives the error error : 'Unknown type "' + name + '"' + ',  math.js (line 751, col 16))`

var tmpstr = 'sum('+list.toString()+')';
var node = math.parse( tmpstr ); // works

/* the rest of relevant code:
    var code = node.compile();       
    var result = code.eval();
    console.log('result ='+ result);        
    console.log('It works!', parser.eval('sqrt(3^2 + 4^2)')); */

math.eval('a * b', { a: 3, b: 4 }  );  //gives the error error : 'Unknown type "' + name + '"' + ',  math.js (line 751, col 16))`
scope = { a: 3, b: 4 }; math.eval(scope); //works


    }); 
    </script>
    {% endblock %}  {# javascripts#}

С другой стороны, теперь, когда я очищаю наличные деньги Mozilla с помощью Alt+F5 каждый раз, когда я обновляю браузер, я получаю другую ошибку "parser is not defined".

person olga    schedule 13.09.2016

Я нашел такие проблемы, это ошибка: неизвестный тип «строка»,

восстановленный метод:

отредактируйте math.js, используйте режим отладки, найдите функцию неизвестного типа... строка и повторите 2 раза ""

код math.js, например...

function u(t) { t = t.replace(" ",""); t = t.replace(" ",""); ...

просто убери пробел 2 раза

person user2846002    schedule 03.09.2019