if语句破坏.push方法

if statement breaking .push method

本文关键字:push 方法 语句 if      更新时间:2023-09-26

所以我循环通过一组JSON数组,然后循环通过每个单独的数组。

如果我删除两个If语句,它将在两个数据集中循环,并将"target"与两个"data"集一起追加,但与现在一样,它将只在第一个each循环中追加items.join。

案例内容首先是一个if循环,认为这很重要,但没有。

奇怪的是,consoleOut(像console.log)确实打印了我的东西,所以它实际上在JSON集中循环了两个数组。

    $.each(data, function(keys, vals)
    {
    var items = [];

     $.each(data[keys], function(key, val) 
     {
        var currString = JSON.stringify(val);
        switch (key)
        {
        case "ID":              
            consoleOut("ID: "+currString+" loaded");
        break;                                      
        case "parentIDs":
            consoleOut("parentIDs: "+currString);
        break;
        case "UID":
            consoleOut("UID: "+currString);
            UID = unquote(currString);
        break;
        case "title":
            consoleOut("Title: "+currString);
            items.push('<H1 class="' + key + '">' + unquote(currString) + '</H1>');
        break;
        case "img":
            consoleOut("IMG: "+currString);
            if ($(currString).val() !== '')
            {
            items.push('<IMG class="' + key + '" src='+currString+'></IMG>');               
            };
        break;
        case "text":
            consoleOut("TXT: "+currString);
            if ($(currString).val() !== '')
            {
            items.push('<P class="' + key + '">'+currString+'</P>');
            };
        break;
        }
      });
      consoleOut("---------");
      $('<DIV/>', {
        'id': UID,
        html: items.join('')
      }).appendTo(target);
    } 
) 

我想知道if语句是如何破坏我对主"items"数组的附加的。。

(当我一开始不字符串化val时,它会循环,但这是因为if语句当时为true,但当为false时停止工作。所以也许最好修改我的if语句,但我仍然困惑于.push是如何停止工作的?)

$(currString).val() 

它表示您正在制作一个元素,并查看该元素的值属性。这是你真正想要的吗?我认为图像或文本没有价值。

我想你会想使用长度或html()

[EDIT]看着你的对象,你只想检查currString 的长度

if( currString && currString.length>0 ) {

这不是JSON,而是一个数组。

[{"ID":"1",
  "parentIDs":null,
  "UID":"home",
  "title":"Home",
  "text":"<3 here",
  "img":"/favicon.ico",
  "url":"home",
  "cat_id":"1",
  "view_id":"",
  "css_id":null}‌​,
 {"ID":"4",
  "parentIDs":"home",
  "UID":"home_info",
  "title":"Info about Home",
  "text":"Info about Home",
  "img":"",
  "url":"",
  "cat_id":"",
  "view_id":"",
  "css_id":null}
]

你确定你的输入看起来不是这样的吗(即,是JSON)?

{ "data" : [{"ID":"1",
             "parentIDs":null,
             "UID":"home",
             "title":"Home",
             "text":"<3 here",
             "img":"/favicon.ico",
             "url":"home",
             "cat_id":"1",
             "view_id":"",
             "css_id":null}‌​,
            {"ID":"4",
             "parentIDs":"home",
             "UID":"home_info",
             "title":"Info about Home",
             "text":"Info about Home",
             "img":"",
             "url":"",
             "cat_id":"",
             "view_id":"",
             "css_id":null}
           ] }