[英]Variable is undefined in function
我有一個用逗號分隔值的字符串:
var newVal = "9103174091,1231231232"
$(ctrl).val(DataReview.Encryption.formatPersonNmbr(newVal));
我用這個值調用一個函數:
function (val) {
val = val.split(",");
var newVal = "";
for (var i = 0; i <= val.length; ++i)
{
val[i] = val[i].replace(/ /g, '');
var newVal = val[i];
if (val[i].length == 10 || val[i].length == 11 || val[i].length == 12) {
if (val[i].length == 11) {
val[i] = val[i].substring(0, 6) + val[i].substring(7);
}
if (val[i].length == 10) {
var year = '20' + val[i].substring(0, 2);
var month = val[i].substring(2, 4);
var day = val[i].substring(4, 6);
var date = new Date(year, month - 1, day);
if (isNaN(date) == false) {
var currentDate = new Date();
if (date > currentDate) {
val[i] = '19' + val[i];
} else {
val[i] = '20' + val[i];
}
}
}
}
newVal += val[i].substring(0, 8) + '-' + val[i].substring(8);
}
return newVal;
}
當我運行它時,我收到以下錯誤:
TypeError: val[i] is undefined
val[i] = val[i].replace(/ /g, '');
我不明白這怎么可能是未定義的? 我究竟做錯了什么?
您確定這是 for 循環的正確結束條件嗎?
for (var i = 0; i <= val.length; ++i)
或者你的意思是這樣的:
for (var i = 0; i < val.length; ++i)
這可能是由 1-off 錯誤引起的。 在最后一個元素評估為undefined
之后訪問該元素。
var list = [2, 4, 6, 8];
for (var i = 0; i <= val.length; i++){
console.log(list[i]);
}
2
4
6
8
undefined
最后一次出現undefined
因為val[4]
沒有值,列表中的值只能訪問val[3]
。 它的索引達到 4,因為val.length
返回 4,因為有四個元素。 使用小於或等於運算符允許發生此錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.