"use strict"; export function bs_defs(mtx, isDeep) { var res = {}; //результат if (isDeep = true) { var key = "dp" } else { var key = "lv" }; var des = { FTF: { ds: "тел качения и сепаратора", dp: 8, lv: 20 }, FREQ: { ds: "винта", dp: 13, lv: 20 }, BSF: { ds: "тел качения", dp: 10, lv: 20 }, BPFO: { ds: "гайки", dp: 15, lv: 20 }, BPFI: { ds: "винта", dp: 8, lv: 20 }, }; //описание функциональных частот function get_note(harmsArr) { let note = "Износ"; //описание характера колебаний let cnt = 0; //количество значений в массиве for (let i = 0; i <= harmsArr.length - 1; i++) { if (harmsArr[i] > 0) { cnt++ }; }; if (cnt >= 5) { note = "Дефект" }; if (harmsArr[1] > harmsArr[0]) { note = "Перекос" }; if (cnt > 0 && harmsArr[0] == 0 && harmsArr[1] == 0) { note = "Неидентифицированные изменения вибрации" }; return note; }; function get_level(lvl, thres) { let level = "Сильный"; switch (true) { case lvl < 0.5 * thres: level = "Слабый"; break; case lvl < thres: level = "Средний"; break; default: break; }; return level; }; var rows = Object.keys(mtx); //массив ключей объекта (наборов гармоник) for (let i = 0; i <= rows.length - 1; i++) { let arr = mtx[rows[i]]; //массив гармоник let lvl = Math.max(...arr); //определяем максимальное значение параметра из массива let sum = arr.reduce(function (a, b) { return a + b }, 0); //сумма элементов массива if (sum > 0) { let note = get_note(arr); res[rows[i]] = note + ' ' + des[rows[i]].ds + ': ' + get_level(lvl, des[rows[i]][key]) + ' (' + lvl + ')'; }; }; return res; };