2017-01-26 4 views
0

私はオブジェクトを作成し、それを配列にプッシュしようとしています 私のコードで私の問題は、私はコンソールログに[{name: "blabla"、price:25}、{name: "blabla2"、price:10}のように表示する必要があります。ここに私のコードは次のとおりです。このような関数は、オブジェクトを作成し、配列にプッシュ

var shoppingCart = []; 
 
function addToCart (itemName,itemPrice) { 
 
    this.name = itemName; 
 
    this.price = itemPrice; 
 
    return shoppingCart.push(itemName,itemPrice) 
 
} 
 
addToCart ("baba",25); 
 
addToCart ("choco",85); 
 
console.log(shoppingCart);

答えて

2

var shoppingCart = []; 
 
function addToCart (itemName,itemPrice) { 
 
    shoppingCart.push({name: itemName, price: itemPrice}); 
 
} 
 
addToCart ("baba",25); 
 
addToCart ("choco",85); 
 
console.log(shoppingCart);

+0

それを解決しますが、実際にはしませんでした私の問題を以下のように解決するのを手伝ってください。) – ben

0

あなたはこのようshoppingCartオブジェクトを使用して考えたことはありますか?

var shoppingCart = { 
 
\t items: [], 
 
\t getItems: function(){ 
 
\t \t return this.items; 
 
\t }, 
 
\t add: function(itemName,itemPrice) { 
 
\t \t \t var newItem = {name: itemName, price: itemPrice}; 
 
\t \t \t this.items.push(newItem); 
 
\t \t } 
 
} 
 

 
shoppingCart.add("baba",25); 
 
shoppingCart.add("choco",85); 
 

 
console.log(shoppingCart.getItems());

+0

しかし、それは私のエクササイズには関係ありません。とにかく – ben

0

var shoppingCart = []; 
 
function addToCart (itemName,itemPrice) { 
 
    this.name = itemName; 
 
    this.price = itemPrice; 
 
    return shoppingCart.push({name: itemName, price: itemPrice}); 
 
} 
 
addToCart ("baba",25); 
 
addToCart ("choco",85); 
 
console.log(shoppingCart); 
 

 
function priceCheck (itemStore) { 
 
    for (var i=0;i<shoppingCart.length;i++) { 
 
    if (shoppingCart[i].name = itemStore) { 
 
     console.log("The price is " + this.price + " shekels"); 
 
    } 
 
    else { 
 
     console.log("that item is not in your cart"); 
 
    } 
 
    } 
 
} 
 
priceCheck ("baba"); 
 
console.log(shoppingCart); 
 

 
function totalPriceCheck() { 
 
    var total = 0; 
 
    for (var i=0;i<shoppingCart.length;i++) { 
 
    total += shoppingCart[i].price; 
 
    } 
 
    return total; 
 
} 
 
totalPriceCheck();

あなたは問題のナンバーワンは、私がログイン慰めるとき、いくつかの理由のために、それは二回私の馬場の名前を与え、馬場があると考えてpriceCheckである見ることができるように85の代わりに85

2番目の問題は、returur NS私のNaNは私が私の配列オブジェクトからの価格のプロパティの合計を取得する必要があるとき

0

RE:上記のあなたのポスト、これはイエス

var shoppingCart = []; 
 
function addToCart (itemName,itemPrice) { 
 
    this.name = itemName; 
 
    this.price = itemPrice; 
 
    return shoppingCart.push({name: itemName, price: itemPrice}); 
 
} 
 
addToCart ("baba",25); 
 
addToCart ("choco",85); 
 
console.log(shoppingCart); 
 

 
function priceCheck (itemStore) { 
 
    for (var i=0;i<shoppingCart.length;i++) { 
 
    if (shoppingCart[i].name = itemStore) { 
 
     console.log("The price is " + shoppingCart[i].price + " shekels"); 
 
     break; 
 
    } 
 
    else { 
 
     console.log("that item is not in your cart"); 
 
    } 
 
    } 
 
} 
 
priceCheck ("baba"); 
 
console.log(shoppingCart); 
 

 
function totalPriceCheck() { 
 
    var total = 0; 
 
    for (var i=0;i<shoppingCart.length;i++) { 
 
    total += shoppingCart[i].price; 
 
    } 
 
    return total; 
 
} 
 
console.log(totalPriceCheck());

+0

メモとして、私は 'this.price'を' shoppingCart [i] .price'に変更し、カート内のアイテムを見つけた後に 'break'を追加しました – Dillanm

+0

あなたは休憩でそれを行うことができました。 – ben

+0

理想的には、それを反復するのではなく、つまりhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/のようなものを使用して、検索を使用するようにpriceCheckを変更するようにしてください。配列/検索。 – Dillanm

関連する問題