"use strict"; export function knDefs(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 }, }; //описание функциональных частот var rows = Object.keys(mtx); //массив ключей объекта (наборов гармоник) for (let i = 0; i <= rows.length - 1; i++) { let arr = mtx[rows[i]]; //массив гармоник let delta = 0; //"расстояние" до дефекта for (let j = 0; j <= arr.length - 1; j++) { let limit = des[rows[i]][key]; //порог для гармоник if (arr[j] / limit >= 1) { limit = arr[j] }; delta = delta + Math.pow(1 - arr[j] / limit, 2); }; delta = Math.sqrt(delta); res[rows[i]] = delta; }; let values = Object.values(res); //собираем значения ключей объекта в массив let minValue = Math.min(...values); //определяем минимальное значение let minKey = Object.keys(res).find(minKey => res[minKey] === minValue); //определяем ключ по минимальному значению return des[minKey].ds; };