Добавление/подключение библиотеки js и обращение к ней

+1 голос
newbie в категории Интеграция

Добрый день!

Мне необходимо добавить js библиотеку. Инструкции на https://help.loginom.ru/ не помогают.

Куда ее необходимо загрузить? Можете ли описать основные шаги для загрузки и обращения к этой библиотеке? И смогу ли я обращаться к ней из элемента «Калькулятор», а не элемента «JavaScript»?

Библиотека, которую хочу использовать, лежит здесь: https://github.com/optimization-js/optimization-js/blob/master/README.md

Ответ: 1 шт.

0 голосов
Евгений Алябьев

Обратиться к библиотеке можно только из узла JavaScript. В узле Калькулятор можно лишь использовать синтаксис JS.

Библиотеку, для удобства, можно скопировать в ту же директорию, где находится пакет (файл со сценарием). Обратиться к ней можно по относительному пути, например: "./lib.js", "../../libs/lib.js".

Пример обращения. В узле JavaScript создайте пару выходных полей вещественного типа (первое поле для результата функции minimize_Powell, а второе — для функции Real из указанной библиотеки).

Далее, в редакторе кода введите следующее (жирным выделен код, которого не было на указанной странице):


import { OutputTable } from "builtIn/Data";

// добавление библиотеки, которая находится в директории с пакетом:

const optimjs = require("./optimization.js");

// objective that needs to be minimized

var fnc = function (v) {

  var result = 0.0;

  for (var i = 0; i < v.length; i++){

    result = result + v[i] * v[i]

  }

  return result;

};

var x0 = [1.0, -1.0, 0.5, -0.5, 0.25, -0.25]; // a somewhat random initial vector

// Powell method can be applied to zero order unconstrained optimization

var solution = optimjs.minimize_Powell(fnc, x0);

// добавляем строку в результирующий набор:

OutputTable.Append();

// записываем результат функции minimize_Powell в первое поле добавленной строки:

OutputTable.Set(0, solution.fncvalue * 100000);

// функция Real. Вывод ее результата во второе поле добавленной строки:

var real = optimjs.Real(-1, 2);

OutputTable.Set(1, real.random_sample());

...