Jquery循环在变量为空时结束?

Jquery循环在变量为空时结束?,jquery,Jquery,我的代码从一个视频游戏中制作了一张地图,这个游戏是用大量较小的图像构建的 现在的问题是在最后一个循环中,它插入了一个空值的图像。我真的不明白我做错了什么 var str = $('#tool').html(); var res = str.match(/.{1,2}/g); $.map(res, function(value) { if (value.length == 0) { return; } $("div#tool").append('&

我的代码从一个视频游戏中制作了一张地图,这个游戏是用大量较小的图像构建的

现在的问题是在最后一个循环中,它插入了一个空值的图像。我真的不明白我做错了什么

var str = $('#tool').html();
var res = str.match(/.{1,2}/g);

$.map(res, function(value) {
    if (value.length == 0) {
        return;
        }
    $("div#tool").append('<img src="Images/Woods/' + value + '.png" />');
});
var str=$('#tool').html();
var res=str.match(/.{1,2}/g);
$.map(分辨率、函数(值){
如果(value.length==0){
返回;
}
$(“div#tool”)。追加(“”);
});

匹配包含任何字符(包括空格)的任何单词(最多2个字符)

为了避免空字符串匹配,您需要更改:

if (value.length == 0) {
在a之前添加:

例如:

$.map(“12345A.match(/.{1,2}/g),函数(值){
value=value.trim();
如果(value.length>0){
$(“div#tool”).append(“
”); } });

不是您想要在这里使用的,因为您没有尝试创建新阵列

您应该改为使用一个简单的for循环

var str=$('#tool').html()//请注意,在这里.text()实际上可能工作得更好
//如果你不想要任何html标签。
var res=str.match(/.{1,2}/g);
对于(变量i=0;i0){
$(“div#tool”)。追加(“”);
}
}
我也不确定您的正则表达式(它匹配空格字符,它将以1或2个字符的块抓取匹配,等等),但由于我不知道您在使用它,我将留给您


我希望这能有所帮助

它现在与trim方法完美结合,我会看到我还需要更改正则表达式以避免其他问题,谢谢!
if (value.length == 0) {
value = value.trim();