2017-05-28 87 views
0

我正在購物車功能練習。該功能需要在cart中添加一個item,並打印出item name已添加到您的購物車,或者您的購物車爲空如果沒有添加項目。javascript通過添加/循環鍵和值操作對象

我還需要創建一個對象來存儲的Math.random *生成的項目價格100

兩個項目名稱和項目價格應存放在一個對象。該對象將被傳遞給用戶查看購物車的下一個功能。

這是我的嘗試,但它一次轉動多個項目。

function addToCart(item) { 
    item = ["pizza", "salt", "apples"] 
    var price = [] 
    var priceRandom = Math.random() * 100 
    var priceItem = Math.floor(priceRandom) 

    for (var i =0; i<item.length; i++){ 
    cart.push(item[i]) 
    console.log(`${item[i]}has been added to your cart. `) 
} 

    var cartList = { 
    item[i], priceItem[i] 
    } 

    return cartList 

} 
+0

'Object'的原型對這個有趣的方法:'Object.keys(OBJ)' 因此,遍歷可以執行的鍵/屬性: 'var keys = Object.keys(obj); for(var k of keys){}' – Vivick

回答

1

我不是打算做你的整個運動,也不應該一

但在這裏,你有一個包含兩個數組(名稱和價格)

var items = { 
    names: ["pizza", "salt", "apples"], 
    price: [] 

} 

對象'items`而與forEach()我們將循環通過items對象中的所有names並給它們一個價格。

items.names.forEach(function() { 
    var priceRandom = Math.random() * 100 
    var priceItem = Math.floor(priceRandom) 
    items.price.push(priceItem); 
}); 
+0

謝謝。將項目設置爲對象有助於重構代碼。 – huisleona

0

我想這是你想要的

function shopingcart(items){ 
 
let cart =[]; 
 
items.forEach((v,i)=> {cart[i] = {food: v,price: Math.floor(Math.random(i)*100)}}); 
 
return cart 
 
} 
 

 
var items = ['pizza', 'salt', 'apples'] 
 
var cart = shopingcart(items);  
 

 
console.log(cart); 
 
// iterate by key value 
 
cart.forEach((item)=>{ 
 
console.log(item.price) 
 
console.log(item.food) 
 
})