2015-06-18 2 views
0

Как использовать стандарт для цикл вместо forEach в нижнем случае?Функция Javascript для функции Loop внутри функции

Я написал этот код на вставке значения в TextBox, если длина превышает 4 символа, добавьте его в следующий TextBox, однако мое приложение не поддерживает функцию IE8 foreach, поэтому мне нужна функция, которая будет запускать обычный цикл.

var inputsArray= new Array(4); 
inputsArray[0] = document.getElementById("id1"); 
inputsArray[1] = document.getElementById("id2"); 
inputsArray[2] = document.getElementById("id3"); 
inputsArray[3] = document.getElementById("id4"); 

for (var i = 0, len = inputsArray.length;i < len; i++) { 
    //some code 
    fillTextFields(this.value,startingField); 
} 

function fillTextFields(code, startingField) { 
    //***instead of forEach I need a normal for Loop how to do it?*** 
    inputsArray.slice(startingField).forEach(function (item, iter) { 
    item.value = code.slice(iter * 4, iter * 4 + 4); 
    }); 
} 
+1

ваш ответ в вашем вопросе, вы используете цикл чуть выше –

+0

да, я уже пробовал этот код, но создание функции внутри Loop не будет работать, как вызвать эту функцию var x = inputArray.slice (startField); for (var i = 0; i

ответ

0

Поскольку срез возвращает новый массив, вы должны быть в состоянии просто сделать (при условии, startingField целое):

var x = inputsArray.slice(startingField); 
for (var i = 0; i < x.length; i++) { 
... 
} 
+0

Да, я уже пробовал этот код, но создание функции внутри цикла Loop не работает, как вызвать эту функцию var x = inputArray.slice (startField); for (var i = 0; i

+0

в вашем цикле for, «item» должен быть x [i], а «iter» должен быть i (с использованием моих имен переменных). Поэтому в этом случае вам не нужна функция; просто сделайте x [i] .value = code.slice (i * 4 ...) Надеюсь, это даст вам достаточно, чтобы заполнить тело цикла for. – dgavian