我无法理解for循环的行为。 jquery的:
$('#btnTest').on("click", function () {
var thumbUrl = "http:localhost/File/Modules/FileManager/Library/1041323042_12.jpg";
var arrurl = thumbUrl.split("/");
var i;
var result;
for (i = 0; i < arrurl.length - 1; i++) {
result += arrurl[i] + '/';
}
alert(result);
});
和html:
<input type="button" class="ThumbLink" value="Test" id="btnTest"/>
但alert
给出了结果:
undefinedhttp:localhost/File/Modules/FileManager/Library/
这个undefined
来自哪里。我在for循环中的错误是什么?谢谢。
我的jsfiddle:
答案 0 :(得分:1)
您尚未将result
初始化为任何内容,因此它将为undefined
。
因为您尝试将字符串连接到undefined
,它将toString()
undefined
,获取字符串"undefined"
,并将开始连接到该字符串。
您可以通过将result
初始化为空字符串(""
)来停止此操作。
答案 1 :(得分:1)
也许,因为每次循环时你只是追加到result
,你可能想要将它最初设置为其他而不是{{ 1}}。
undefined
对jsfiddle链接进行更改会产生正确的输出:
:
var result = "";
for (i = 0; i < arrurl.length - 1; i++) {
result += arrurl[i] + '/';
}
alert(result);
:
答案 2 :(得分:1)
您必须为结果提供初始值:
var result = '';
否则在将url连接到它之前结果是未定义的:
var x;
x += 'foo'; // x === 'undefinedfoo';
答案 3 :(得分:0)
声明
var result = "";
然后它会正常工作:)