создать цикл
Добрый день. Запнулся на цикле. Имею функцию:
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 или другое, если пробую варианты. Прошу указать на мою ошибку. Спасибо |
Window1 - как выглядит?
Window1.Hprm.OnValueChange=function(){ mater.forEach((el,i)=> HNap(Window1[el],Window1[hnap[i]])); }; |
Спасибо большое за ответ. Прошлая ошибка ушла. Но, к сожалению, появилась другая:
TypeError: Cannot set properti "Value" of undefined at HNap at mater.forEach at Array.forEach(name) at Function Window1.Hprm.OnValuehange |
Попробуйте так:
[11, 21, 31].forEach(num => HNap(Window1['Mater'+num], Window1['Hnap'+num])); |
Часовой пояс GMT +3, время: 23:50. |