2017-03-06 3 views
0

これはショッピングカートです。一致するプロパティを見つけるためにオブジェクトリテラル配列を反復処理するにはどうすればよいですか?

regularListingsのアイテムの価格を取得し、それらを使用してカートの合計を計算したいと考えています。

カート「マイケル」の最初の項目は、顧客の名前です。

これはどのようにJavaScriptで行うことができますか?

'use strict' 

const listing = 
    (name, price) => ({ 
    name, 
    price 
    }) 

const cart = 
    (customer, ...items) => ({ 
    customer, 
    items 
    }) 

const listedPrice = 
    listing => 
    name => 
     name === listing.name 
     ? listing.price 
     : 0 

const regularListings = [ 
    listing('detergent', 10), 
    listing('hennessey', 100), 
    listing('carlo rozzi', 20), 
    listing('coffee', 5), 
    listing('cookies', 6), 
    listing('mountain dew', 2) 
] 

const carts = [ 
    cart(
    'michael', 
    'coffee', 
    'hennessey', 
    'coffee', 
    'hennessey', 
    'coffee', 
    'hennessey' 
) 
] 
+1

を計算することができます。オブジェクトのプロパティには順序は保証がありません。カートはおそらくオブジェクトではなく配列でなければなりません。 – Pointy

答えて

3

あなたはregularListingsを削減し、あなたが問題に遭遇するつもり合計

const regularListings = [ 
    listing('detergent', 10), 
    listing('hennessey', 100), 
    listing('carlo rozzi', 20), 
    listing('coffee', 5), 
    listing('cookies', 6), 
    listing('mountain dew', 2) 
] 

const total = regularListings.reduce((state, item) => state + item, 0); 
+2

ES6の矢印表記を使用したい場合: 'regularListings.reduce((total、item)=> total + item.price、0);' – seth10

+0

また、値は 'total'それがはっきりしない場合に始める。 – seth10

+0

@sethtあなたのご提案のおかげで – Burimi

関連する問題