Я пишу JavaScript/JQuery метод для реорганизации входного значения вставленного числа в поле ввода. Коллекция nonFractions - это числа перед десятичным разделителем. Однако, когда я запускаю этот сценарий, я получаю вопрос, что в следующей строке:JavaScript: Collection is null in for loop
for(var i=0 ; i < nonFractions.length ; i++) {
Моя переменная nonFractions равна заключается в null
. Как это происходит? Я не вижу проблемы.
Мой общий код:
$("#queryInstructedAmountFrom").change(function(){
var amount = $("#queryInstructedAmountFrom").val();
amount = removeZeros(amount);
var splittedValues = amount.split(/[,.]/);
amount = "";
if(splittedValues.length == 1) {
amount += splittedValues[0];
var nonFractions = amount.match(/.{1,3}/g);
var firstIndex = amount.length % 3;
if(firstIndex != 0) {
var firstNumbers = amount.substr(0, firstIndex);
amount = amount.substr(firstIndex);
nonFractions = amount.match(/.{1,3}/g);
amount = "";
amount += firstNumbers;
amount += thousandSeparator;
} else {
amount = "";
}
for(var i=0 ; i < nonFractions.length ; i++) {
amount += nonFractions[i];
if(i < (nonFractions.length - 1)){
amount += thousandSeparator;
}
}
amount += decimalSeparator;
amount += "00";
} else {
for(var i=0 ; i < splittedValues.length - 1 ; i++) {
amount += splittedValues[i];
}
nonFractions = amount.match(/.{1,3}/g);
var firstIndex = amount.length % 3;
alert(firstIndex);
if(firstIndex == 0) {
nonFractions = amount.match(/.{1,3}/g);
}
if(firstIndex > 1) {
var firstNumbers = amount.substr(0, firstIndex);
amount = amount.substr(firstIndex);
nonFractions = amount.match(/.{1,3}/g);
amount = "";
amount += firstNumbers;
amount += thousandSeparator;
} else {
alert(nonFractions);
amount = "";
}
for(var i=0 ; i < nonFractions.length ; i++) {
amount += nonFractions[i];
if(i < (nonFractions.length - 1)){
amount += thousandSeparator;
}
}
amount += decimalSeparator;
amount += splittedValues[splittedValues.length -1];
}
Может кто-нибудь дать мне решение?
Не могли бы вы столкнуться с проблемой, потому что ваше объявление переменной находится в вашем начале, если утверждение? Что произойдет, если splittedValues.length! = 1? – Dresden