Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 17

Подскажите что в чем ошибка, НОД поэлементно разделить массивы друг на друга

01.12.2025, 07:13. Показов 399. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу скажу, я не программист, а проектировщик строитель, поэтому прошу помощи, в таком для программиста наверное тривиальном вопросе. Как мне перемножить поэлементно два массива. Код пишется для нодов в программа сапфир 3Д. Deepseek мне подсказал такую бибу:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(CurrentNode){
  var arr_A = [];
  var arr_B = [];
  CurrentNode.GetArrayNumberIn(0, arr_A);
  CurrentNode.GetArrayNumberIn(1, arr_B);
  
  var cnt = Math.min(arr_A.length, arr_B.length);
  var results = [];
  
  for(var i = 0; i < cnt; i++) {
    if(Math.abs(arr_B[i]) > 0.000001) {
      results.push(arr_A[i] / arr_B[i]);
    } else {
      results.push(0);
    }
  }
  
  CurrentNode.SetArrayDoubleOut(0, results);
}
На входе 0 и 1 имеем по несколько чисел, на выходе 0 уже массив. Сапфир не выдает ответ для данного кода
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2025, 07:13
Ответы с готовыми решениями:

Рисовать массив поэлементно с задержкой
Пытаюсь рисовать матрицу из квадратов в canvas в зависимости от количества элементов массива....

Сложить поэлементно два массива
Реализуй функцию combineArrays, которая принимает 2 массива чисел (first и second) и возвращает...

Как разделить все элементы одного массива на все элементы другого массива?
Как разделить все элементы одного массива на все элементы другого массива, и вывести все...

11
 Аватар для voraa
1248 / 1152 / 178
Регистрация: 21.01.2024
Сообщений: 5,350
01.12.2025, 07:23
JavaScript
1
2
3
4
5
6
const ar1 = [3,5,7,9];
const ar2 = [2,4,8,10];
const res = [];
 
for (let i = 0; i < ar1.length; i++) 
    res.push(ar1[i] * ar2[i]);
Добавлено через 2 минуты
Цитата Сообщение от cold_ocean Посмотреть сообщение
Как мне перемножить поэлементно два массива
Цитата Сообщение от cold_ocean Посмотреть сообщение
нод поэлементно раздлеить массивы друг на друга
Перемножить или разделить?
1
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 17
01.12.2025, 07:28  [ТС]
Ой разделить да, разделить. Уже запутался. Однозначно разделить.
0
 Аватар для voraa
1248 / 1152 / 178
Регистрация: 21.01.2024
Сообщений: 5,350
01.12.2025, 07:29
JavaScript
1
2
3
4
5
6
const ar1 = [3,5,7,9];
const ar2 = [2,4,8,10];
const res = [];
 
for (let i = 0; i < ar1.length; i++) 
    res.push(ar1[i] / ar2[i]);
1
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 17
01.12.2025, 07:31  [ТС]
Вот интерфейс редактора нода в самом сапфире
Миниатюры
Подскажите что в чем ошибка, НОД поэлементно разделить массивы друг на друга  
0
 Аватар для voraa
1248 / 1152 / 178
Регистрация: 21.01.2024
Сообщений: 5,350
01.12.2025, 07:38
Я не знаю, что такое Сапфир, и какой древности js он использует
Но в принципе код такой же
Если в нем нельзя let и const, значит var используйте.
0
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 17
01.12.2025, 08:55  [ТС]
а вот так в принципе синтаксис js верный ?

Добавлено через 12 секунд
а вот так в принципе синтаксис js верный ?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(CurrentNode){
  var arr_A = [];
  var arr_B = [];
  CurrentNode.GetArrayNumberIn(0, arr_A);
  CurrentNode.GetArrayNumberIn(1, arr_B);
  
  var cnt = Math.min(arr_A.length, arr_B.length);
  var arr_C = [];
  
  for(var i = 0; i < cnt; i++) {
    if(Math.abs(arr_B[i]) > 0.000001) {
      arr_C.push(arr_A[i] / arr_B[i]);
    } else {
      arr_C.push(0);
    }
  }
  
  CurrentNode.SetArrayDoubleOut(0, arr_C);
}
Добавлено через 24 секунды
видимо что то в самой программе не так, спасибо
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,157
01.12.2025, 09:16
Цитата Сообщение от cold_ocean Посмотреть сообщение
а вот так в принципе синтаксис js верный ?
Не понятно кто такой CurrentNode... Что делает его метод CurrentNode.GetArrayNumberIn() и CurrentNode.SetArrayDoubleOut().
В остальном, вроде, ничего криминального...

Добавлено через 4 минуты
Цитата Сообщение от cold_ocean Посмотреть сообщение
JavaScript
1
2
3
4
5
if(Math.abs(arr_B[i]) > 0.000001) {
   arr_C.push(arr_A[i] / arr_B[i]);
} else {
   arr_C.push(0);
}
Это можно заменить на
JavaScript
1
2
var v = arr_B[i]) > 0.000001 ? arr_A[i] / arr_B[i] : 0
arr_C.push(v)
1
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 17
01.12.2025, 09:35  [ТС]
не понимаю почему, заработал такой вариант
if(CurentNode){
var AA = new Array();
CurentNode.GetArrayNumberIn(0,AA );
var BB = new Array();
CurentNode.GetArrayNumberIn(1,BB );
var cnt = AA.length;
var CC = new Array();
for(var i=0; i<cnt; i++)
CC[i]= AA[i]/BB[i];
CurentNode.SetArrayDoubleOut(0, CC);
}

Добавлено через 2 минуты
я так понимаю это входы и выходы у нода

Добавлено через 4 минуты
подскажите пожалуйста, используя push мы собираем массив, а вварианте который заработал push отсутствует, это верная запись для javascript ?

Добавлено через 1 минуту
если ли принципиальная разница собирать массив через push или i-тое ?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,157
01.12.2025, 09:39
Лучший ответ Сообщение было отмечено cold_ocean как решение

Решение

Цитата Сообщение от cold_ocean Посмотреть сообщение
не понимаю почему, заработал такой вариант
Для понимания можно заменить
Цитата Сообщение от cold_ocean Посмотреть сообщение
JavaScript
1
var AA = new Array();
На var AA = [];...

Потом заменить
Цитата Сообщение от cold_ocean Посмотреть сообщение
JavaScript
1
CC[i]= AA[i]/BB[i];
На CC.push(AA[i]/BB[i]);...

Программку записывать и тестировать на каждом изменении.

Добавлено через 2 минуты
Цитата Сообщение от cold_ocean Посмотреть сообщение
используя push мы собираем массив
Правильная интерпретация - добавляем новый элемент в конец массива.

Цитата Сообщение от cold_ocean Посмотреть сообщение
а вварианте который заработал push отсутствует, это верная запись для javascript ?
Да.
Это, т.с., альтернативная "форма заполнения" массива.
1
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 17
01.12.2025, 09:42  [ТС]
спасибо большое, без вашей помощи и не разобрался бы что к чему
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,157
01.12.2025, 09:44
Цитата Сообщение от cold_ocean Посмотреть сообщение
если ли принципиальная разница собирать массив через push или i-тое ?
Да. есть.
При использовании метода .push() новые элементы всегда добавляются в конец массива. Длина массива всегда увеличивается на количество добавленных элементов.

Присвоение значения некоему индексу работает иначе. Вот пример:
JavaScript
1
2
3
const a = []
a[10] = 1
console.log(a)
Записан вроде всего 1 элемент... Но длина массива уже 11.

Т.ч. нужно умело использовать все эти возможности работы с массивом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2025, 09:44
Помогаю со студенческими работами здесь

Разделить строку на фрагменты по 3 символа.В фрагментах средний символ заменить на случайный не совпадающий с другими
Дана строка. Разделить строку на фрагменты по три подряд идущих символа. В каждом фрагменте средний...

Нечетные элементы массива B(N) разделить на среднее квадратическое элементов этого массива
Нечетные элементы заданного массива B(N) разделить на среднее квадратическое элементов этого...

Распечатать исходный массив и массив, получившийся из элементов исходного массива, с разделителем "+"
Дан массив из элементов: 1, 2, 3, 4, 5. Распечатать исходный массив и массив, получившийся из...

Разделитель массива
Можно ли заменить разделить массива &quot;,&quot; к примеру на &quot;|&quot; ? Без использования str_replace К...

Разделитель массивов в JavaScript
Здравствуйте! Есть такой код: &lt;SCRIPT language=&quot;javascript&quot;&gt; function...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru