使用常规数组我可以使用shift()
和pop()
从数组中获取图像src;我想使用关联数组来添加名称和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() + '">');
答案 0 :(得分: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 + '">');
答案 1 :(得分:1)
这一行:var products = [{id:'1',name:'product 1',image:'product1.jpg'}];
声明一个内部有一个值的数组。单个值是具有属性id
,name
和image
的对象。当您在数组上调用shift
时,返回的值将是此对象。
答案 2 :(得分: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 + '">');
}
答案 3 :(得分:0)
shift()将整个对象从索引中拉出来,而不是像你的例子中一样。
您需要按名称访问该对象才能获得所需内容。
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 );
答案 4 :(得分:0)
您可以缓存班次,并使用对象的属性:
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 + '">');
您可以以不同方式存储值,作为多维数组:
var products = [['1','product 1','product1.jpg']];
var product = products.shift();
$('#products').append('<img id="' + product.shift()
+ '" name="' + product.shift()
+ '" src="' + product.shift() + '">');