javascript - 如何修改此方法以返回具有键 => 值的数组?

标签 javascript jquery

这是有效的方法,它解析所有 HTML 表格行,并将它们插入数组中,因此它变成了一个行数组,但只有行值,没有键:

function tableToJson(table){
    var AoA = $(table+' > tbody > tr').map(function(){
        return [
            $('td',this).map(function(){
                return $(this).text();
            }).get()
        ];
    }).get();
    return JSON.stringify(AoA);
}

输出:

[
['x','1'],
['y','2'],
['z','3']
]


我可以更改什么以使其返回字典数组(带有键和值)?

如:

[
{'address': 'x','number': '1'},
{'address': 'y','number': '2'},
{'address': 'z','number': '3'}
]



我尝试替换以下行:
return $(this).text();
For:
return $(this).attr ('name') => $(this).text();

但是没有成功。

最佳答案

我想这就是您要找的:

function tableToJson(table){
  var r = [];
  $(table+' > tbody > tr').each(function(){
    var e = $(this);
    r.push({address:e.attr('name'), number:e.text()});
  });
  return r;
}

当然,上面创建了一个对象数组。您可以看到它们的名称和值,例如:

var tblRws = tableToJson('#tableId');
$.each(tblRws, function(i, v){
  console.log('Row:'+i+'; Address:'+v.address+'; Number:'+v.number+';');
});

我不确定您为什么要 JSON.strigify() 结果。如果它用于 AJAX,您可以只使用对象作为 data 参数。此外,您可能希望将 dataType 设置为您希望从服务器返回的 data 类型。

关于javascript - 如何修改此方法以返回具有键 => 值的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25392857/

相关文章:

javascript - 发送数组到post ajax

javascript - Python/Flask 与 Javascript 的通信

javascript - Turbolinks 不起作用(页面加载两次)

javascript - jQuery 鼠标点击计数器

jquery - jquery 日期选择器入门

javascript - 如何删除提交按钮并保存图像以及在codeigniter中使用ajax显示图像?

javascript - jQuery show() 和 hide() 不工作

javascript - 如何使用 content 和 setcontent 在 bootstrap popover 中设置变量值?

javascript - Jquery 淡入淡出和向下滑动标题

jquery - 垂直 Accordion 表不适用于响应式网页设计布局