2016-01-12 64 views
0

這是腳本:如何通過循環內的名稱或索引來調用數組元素?

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_namevalue.price$.each而不是value

+0

'new_array.push(數據[I] .catalog_name,數據[I]。價格);'< - 價格是你在new_array必須訪問的唯一項。要訪問其他東西,您需要先創建一個數組,然後將該數組推入new_array。那麼'指數,價值'會有更多的含義,因爲指數實際上是有用的。 –

+0

@RichardTheobald,我不太明白,new_array目前有2個數組;即catalog_name和價格 – 112233

+0

試試這個目錄名,this.price – vadimchin

回答

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/

+0

這太棒了,但可以幫助修改我的情況?當我嘗試在ctalog_name和price下得到逗號分隔值時,與你的正確分隔成新行而不是逗號不同。 – 112233

+0

我不明白你的意思。你是說new_array只是逗號分隔的列表嗎? –

+0

我的意思是,catalog_name和price的值在逗號分隔內new_array – 112233

相關問題