繁体   English   中英

具有空数组的JSON对象-Javascript

[英]JSON object with empty array - Javascript

我已经创建了一个用于将表转换为JSON对象的应用程序,该应用程序运行正常,但问题是主体键首次出现一个空数组。 谁能告诉我一些

{"head":["Person Name","Person Name","Points","Price","Tax"],"body":[[],["Jill","Smith","50","150","41"],["Eve","Jackson","94","250","81"],["John","Doe","80","950","412"],["Adam","Johnson","67","750","941"]]} 

我的脚本如下

$('#convert-table').click( function() {
    try{
var myTable = [];
var myTr =[];
$('#example-table tr').each(function (i, tr) {
    var myTd =[];
    $('th', tr).each(function(j, th) {
          myTr.push($.trim(th.innerHTML));
    });

    $('td', tr).each(function(j, td) {
        if(td.innerHTML.indexOf("span") != -1){
            var text = $(this).closest('td').find('span').text();
            myTd.push($.trim(text));
        }
        else{
            myTd.push($.trim(td.innerHTML));
        }
    });


    myTable.push(myTd);
});

var headObj ={
    head:myTr,
    body:myTable
};

jsfiddle

尝试使用条件检查数组是否为空

已更新 :因为对于第一个TR,您只有th而不是td,这就是数组为空的原因。


例如

if(myTd.length > 0)
      myTable.push(myTd);

问题是因为在第一个<tr>您仅具有<th>标记,但是您仍然将其推入myTable ,因此这就是空数组的来源。

仅当您有实际的<td>推送到myTable时才推送到myTable

您可以通过检查当前行中是否没有任何<tr>标记或检查myTr数组是否已被压入来完成此操作,以表明您已经通过了其中包含<th>的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM