2011-09-27 76 views
2

使用規則陣列我能夠抓住從使用shift()pop()數組中的圖片src;我想用關聯數組來做同樣的事情來添加一個名字和id。的Javascript SHIFT和POP的關聯數組

單個陣列

var products = ['product1.jpg']; 
$('#products').append('<img src="' + products.shift() + '">'); 

關聯數組

var products = [{id:'1',name:'product 1',image:'product1.jpg'}]; 
$('#products').append('<img id="' + products.shift() + '" name="' + products.shift() + '" src="' + products.shift() + '">'); 
+0

注意,「規則排列」在JavaScript也是關聯數組。只是他們得到了一堆額外的數組方法 - 但它們仍然是關聯數組。 –

回答

1

這條線:var products = [{id:'1',name:'product 1',image:'product1.jpg'}];聲明瞭內的單個值的數組。單個值是具有屬性id,nameimage的對象。當您在數組上調用shift時,返回的值將是此對象。

+0

請注意,您的答案不回答問題。 –

+0

我認爲我的答案爲OP提供了足夠的信息來自己實現這個問題,並停止爲他編寫代碼。我已經稍微編輯了一下。 – Finbarr

+0

我嘗試了其中的幾個,他們都工作,我感謝所有幫助。感謝大家!對於我正在工作的項目,我能夠稍作改動。基於Finbarr的解釋,我學到了足夠的知識,教會了我必須做些什麼才能使它從單個陣列工作到關聯陣列。但是,他們都一直工作。謝謝! – Tim

2

您使用的規則陣列充分的對象,因此變速和流行會工作,但回報你的對象。

var products = [{id:'1',name:'product 1',image:'product1.jpg'}]; 
var prod = products.shift(); 
$('#products').append('<img id="' + prod.id + '" name="' + prod.name + '" src="' + prod.image + '">'); 
0
var products = [{id:'1',name:'product 1',image:'product1.jpg'}]; 

for(var i =0; i < products.length; i++){ 
    var product = products[i]; 
    $('#products').append('<img id="' + product.id + '" name="' + product.name + '" src="' + product.image + '">'); 
} 
0

移()是要拉整個對象列的索引,而不是由一塊一塊的像在您的示例。

您需要通過名稱來訪問對象得到你想要的東西。

var products = [{id:'1',name:'product 1',image:'product1.jpg'}, {id:'2',name:'product 2',image:'product2.jpg'}]; 

var currentProduct = products.shift(); 
$('#products').append('<img id="' + currentProduct.id + '" name="' + currentProduct.name + '" src="' + currentProduct.image + '">'); 

遍歷它

while(products.length>0){ 
    var currentProduct = products.shift(); 
    $('#products').append('<img id="' + currentProduct.id + '" name="' + currentProduct.name + '" src="' + currentProduct.image + '">'); 
} 

更好的性能循環將一個寫的DOM

var strOut = ""; 
while(products.length>0){ 
    var currentProduct = products.shift(); 
    strOut += '<img id="' + currentProduct.id + '" name="' + currentProduct.name + '" src="' + currentProduct.image + '">'; 
} 
$('#products').append(strOut); 
0
  1. 可以緩存的轉變,並使用對象的屬性:

    var products = [{id:'1',name:'product 1',image:'product1.jpg'}]; 
    var product = products.shift(); 
    $('#products').append('<img id="' + product.id 
            + '" name="' + product.name 
            + '" src="' + product.image + '">'); 
    
  2. 可以不同,存儲值作爲一個多維數組:

    var products = [['1','product 1','product1.jpg']]; 
    var product = products.shift(); 
    $('#products').append('<img id="' + product.shift() 
            + '" name="' + product.shift() 
            + '" src="' + product.shift() + '">');