Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2018, 13:47
Новичок на форуме
Отправить личное сообщение для Guamoko Посмотреть профиль Найти все сообщения от Guamoko
 
Регистрация: 17.06.2018
Сообщений: 9

создать цикл
Добрый день. Запнулся на цикле. Имею функцию:

function HNap(Mater11,Hnap11){

arguments[0].SetActive();

var thick = ActiveMaterial.Thickness;
if(thick == 10){
arguments[1].Value=Window1.Hprm.Value-99;
}
if(thick == 4){
arguments[1].Value=Window1.Hprm.Value-102;
}
}
Если вызываю так:

Window1.Hprm.OnValueChange=function(){
HNap(Window1.Mater11,Window1.Hnap11);
HNap(Window1.Mater21,Window1.Hnap21);
HNap(Window1.Mater31,Window1.Hnap31);
// и т.д.
}
то все нормально. Но хотелось бы избежать повторения одной и той же функции с похожими переменными Моя попытка вызвать через цикл:

var mater = ["Mater11","Mater21","Mater31" // и т.д.];
var hnap = ["HNap11","HNap21","HNap31" // и т.д.];

Window1.Hprm.OnValueChange=function(){
for (var i=0, j=0; i<mater.length, j<hnap.length; i++, j++){
HNap(mater[i],hnap[j]);
}
}
выдает ошибку
TypeError: arquments(0).SetActive is not a function at HNap at
Function.Window1.Hprm.OnValueChange
или другое, если пробую варианты.
Прошу указать на мою ошибку.
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2018, 14:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Window1 - как выглядит?

Window1.Hprm.OnValueChange=function(){
mater.forEach((el,i)=> HNap(Window1[el],Window1[hnap[i]]));
};

Последний раз редактировалось j0hnik, 17.06.2018 в 14:28.
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2018, 15:38
Новичок на форуме
Отправить личное сообщение для Guamoko Посмотреть профиль Найти все сообщения от Guamoko
 
Регистрация: 17.06.2018
Сообщений: 9

Спасибо большое за ответ. Прошлая ошибка ушла. Но, к сожалению, появилась другая:
TypeError: Cannot set properti "Value" of undefined at HNap at mater.forEach at Array.forEach(name)
at Function Window1.Hprm.OnValuehange
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2018, 01:10
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Попробуйте так:
[11, 21, 31].forEach(num => HNap(Window1['Mater'+num], Window1['Hnap'+num]));
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, как создать хэш таблицу (или массив) через цикл osetr Общие вопросы Javascript 6 11.11.2014 12:08
Цикл завершается не дожидаясь выполнения функции leonoff jQuery 2 13.08.2014 16:02
Как подчинить себе цикл wreder jQuery 16 20.11.2013 22:17
Цикл завешивает страницу, помогите Romingood jQuery 5 19.10.2013 14:30
как сделать чтобы цикл не запускался второй раз Brook Events/DOM/Window 5 12.05.2013 21:43