Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2022, 14:11
Аспирант
Отправить личное сообщение для IZUM Посмотреть профиль Найти все сообщения от IZUM
 
Регистрация: 21.08.2022
Сообщений: 57

Получить массив из двух исходных массивов
Требуется получить два массива: 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 для левой и правой волн, соответственно.
Изображения:
Тип файла: jpg Ломанная.jpg (22.1 Кб, 4 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2022, 17:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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]')
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2022, 19:10
Аспирант
Отправить личное сообщение для IZUM Посмотреть профиль Найти все сообщения от IZUM
 
Регистрация: 21.08.2022
Сообщений: 57

Если, я не ошибаюсь, то по картинке, да и по сути, должно быть console.log(yP, '[-0.5, 0.5, -0.5, 0.75, -0.75, 0]') То есть, второй элемент 0.75 должен быть со знаком (-) минус
Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2022, 19:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

IZUM,
да, видимо ваш первый пост не совсем точен)))
Ответить с цитированием
  #5 (permalink)  
Старый 04.10.2022, 19:24
Аспирант
Отправить личное сообщение для IZUM Посмотреть профиль Найти все сообщения от IZUM
 
Регистрация: 21.08.2022
Сообщений: 57

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.
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2022, 19:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

IZUM,
не осилил, предоставленный код работает правильно, выводит результат в виде массива и с правильными данными, что не так? или вы свою строку поправить не в состоянии?
console.log(yP, '[-0.5, 0.5, -0.5, 0.75, -0.75, 0]')
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2022, 19:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

IZUM,
или просто console.log(yP);
Ответить с цитированием
  #8 (permalink)  
Старый 04.10.2022, 19:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

и console.log(yL)
Ответить с цитированием
  #9 (permalink)  
Старый 04.10.2022, 19:35
Аспирант
Отправить личное сообщение для IZUM Посмотреть профиль Найти все сообщения от IZUM
 
Регистрация: 21.08.2022
Сообщений: 57

Да, я так и сделал. теперь всё, как надо. большое спасибо.
Ответить с цитированием
  #10 (permalink)  
Старый 04.10.2022, 19:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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]' дан просто для наглядности и удобства сравнения полученного результата и ожидаемого.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассоциативный и обычный массив. Почему не получается получить свойство? jsuse Общие вопросы Javascript 10 04.12.2011 22:14
как получить массив options ? Awilum jQuery 4 12.10.2011 14:32
jqGrid - получить массив записей treef jQuery 0 10.02.2011 12:13
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Получить массив из checkboxов 4En Общие вопросы Javascript 12 12.09.2008 19:22