2

通常の配列を使用して、とを使用して配列から画像srcを取得できshift()ますpop()。名前とIDを追加するために連想配列を使用して同じことをしたいと思います。

シングルアレイ

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() + '">');
4

5 に答える 5

2

オブジェクトでいっぱいの通常の配列を使用しているので、shiftとpopは機能しますが、オブジェクトを返します。

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 + '">');
于 2011-09-27T15:03:02.480 に答える
1

この行:var products = [{id:'1',name:'product 1',image:'product1.jpg'}];内部に単一の値を持つ配列を宣言します。id単一の値は、プロパティ、、、nameおよび。を持つオブジェクトimageです。配列を呼び出すshiftと、返される値はこのオブジェクトになります。

于 2011-09-27T15:01:46.147 に答える
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 + '">');
}
于 2011-09-27T15:03:53.563 に答える
0

shift()は、例のように1つずつではなく、オブジェクト全体をインデックスから引き出します。

必要なものを取得するには、名前でオブジェクトにアクセスする必要があります。

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への1回の書き込みです

var strOut = "";
while(products.length>0){
    var currentProduct = products.shift();
    strOut  += '<img id="' +  currentProduct.id + '" name="' + currentProduct.name + '" src="' + currentProduct.image + '">';
}
$('#products').append( strOut );
于 2011-09-27T15:04:59.030 に答える
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() + '">');
    
于 2011-09-27T15:11:31.290 に答える