如何在循环中按名称或索引调用数组元素?

时间:2016-01-12 01:53:20

标签: jquery arrays

这是剧本:

for(var i=0;i < data.length; i++)
{
    new_array.push(data[i].catalog_name,data[i].price);
    $("#print_receipt").append(
        "<table><thead><tr><th>Item Name</th><th>Unit Price</th></thead><tbody>");

    for (var j=0;j < new_array.length; j++){
        $.each(new_array[j], function( index, value ) {
            $("#print_receipt tbody").append("<tr><td>"+value+"</td></tr>");
        });                         
    }
    $("#print_receipt").append(value+"</tbody></table>");
}

"+value+"此行实际输出由此行new_array.push(data[i].catalog_name,data[i].price);推送到new_array的两个数组的所有值

没关系,但我希望能够单独打电话给他们。例如,如果我想在这个$.each循环中创建一个表,我怎么知道哪些列占用了哪个数组的值?

那么,我如何在value.catalog_name内拨打value.price$.each而不只是value

1 个答案:

答案 0 :(得分:1)

问题是你正在使用数组做事,而javascript数组只是数字索引。相反,将new_array转换为包含对象的对象,然后您就可以按名称检索事物。

var new_array = {};
for(var i=0;i < data.length; i++)
{
    new_array[i] = ({ 'catalog_name':data[i].catalog_name, 'price':data[i].price });
}
$("#print_receipt").append( "<table><thead><tr><th>Item Name</th><th>Unit Price</th></thead><tbody>");
$.each(new_array, function() {
    $("#print_receipt tbody").append("<tr><td>"+this.catalog_name+"</td><td>"+this.price+"</td></tr>");
});
$("#print_receipt").append("</tbody></table>");

https://jsfiddle.net/8weoun7c/