Получить массив из двух исходных массивов
Вложений: 1
Требуется получить два массива: yL = [0, 0.25, -0.375, 0.75, -0.5, 0.5] из двух массивов
xsL = [2, 7, 10, 15, 19] и xoL = [0, 4, 8, 13, 17] и yP = [-0.5, 0.5, -0.5, 0.75, 0.75, 0] из двух массивов: xsP = [27, 31, 37, 42, 46] и xoP = [29, 34, 39, 44, 48]. На картинке представлены данные массивы в виде схемы их расположения. Представленные линии соединяющие точки после своего перемещения в результате принудительного перемещения начальных точек hLL = 0.5 и hPP = -0.5 для левой и правой волн, соответственно. |
IZUM,
let hLL = 0.5, xsL = [2, 7, 10, 15, 19], xoL = [0, 4, 8, 13, 17], i = xsL.length, yL = [hLL]; for (; i--;) { let delta = hLL / (xsL[i] - xoL[i]); hLL += ((xsL[i - 1] ?? xoL[i]) - xsL[i]) * delta; yL.unshift(hLL) } console.log(yL, '[0, 0.25, -0.375, 0.75, -0.5, 0.5]') let hPP = -0.5, xsP = [27, 31, 37, 42, 46], xoP = [29, 34, 39, 44, 48], length = xsP.length, yP = [hPP]; for (let k = 0; k < length; k++) { let delta = hPP / (xsP[k] - xoP[k]); hPP += ((xsP[k + 1] ?? xoP[k]) - xsP[k]) * delta; yP.push(hPP) } console.log(yP, '[-0.5, 0.5, -0.5, 0.75, 0.75, 0]') |
Если, я не ошибаюсь, то по картинке, да и по сути, должно быть console.log(yP, '[-0.5, 0.5, -0.5, 0.75, -0.75, 0]') То есть, второй элемент 0.75 должен быть со знаком (-) минус
|
IZUM,
да, видимо ваш первый пост не совсем точен))) |
yP = [-0.5, 0.5, -0.5, 0.75, -0.75, 0] '[-0.5, 0.5, -0.5, 0.75, 0.75, 0]' В таком виде выводится yP в консоль. Можно yP представить в нормальном виде массива. Также, выводится и yL.
|
IZUM,
не осилил, предоставленный код работает правильно, выводит результат в виде массива и с правильными данными, что не так? или вы свою строку поправить не в состоянии? console.log(yP, '[-0.5, 0.5, -0.5, 0.75, -0.75, 0]') |
IZUM,
или просто console.log(yP); |
:-? и console.log(yL)
|
Да, я так и сделал. теперь всё, как надо. большое спасибо.
|
IZUM,
console.log(yP, '[-0.5, 0.5, -0.5, 0.75, -0.75, 0]') - параметр '[-0.5, 0.5, -0.5, 0.75, -0.75, 0]' дан просто для наглядности и удобства сравнения полученного результата и ожидаемого. |
Часовой пояс GMT +3, время: 20:12. |