Javascript 如何迭代对象文字数组以找到匹配的属性?

Javascript 如何迭代对象文字数组以找到匹配的属性?,javascript,arrays,json,object,Javascript,Arrays,Json,Object,这是一辆购物车 我想检索定期列表中物品的价格,并使用它们计算我购物车的总价格 购物车“michael”中的第一项是客户的姓名 如何在JavaScript中实现这一点 'use strict' const listing = (name, price) => ({ name, price }) const cart = (customer, ...items) => ({ customer, items }) const liste

这是一辆购物车

我想检索定期列表中物品的价格,并使用它们计算我购物车的总价格

购物车“michael”中的第一项是客户的姓名

如何在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'
  )
]

您可以减少
常规列表
并计算总数

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);

您可以减少
常规列表
并计算总数

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);

您将遇到一个问题:对象属性没有保证的顺序。您的购物车可能应该是一个数组,而不是一个对象。您将遇到一个问题:对象属性没有保证的顺序。你的购物车应该是一个数组,而不是一个对象。如果你想使用ES6箭头符号:
regularListings.reduce((total,item)=>total+item.price,0)还有,0在那里,因为如果不清楚,值
total
将从开始。如果要使用ES6箭头表示法:
regularListings.reduce((总计,项目)=>total+item.price,0)同样,0也在那里,因为如果不清楚的话,
total
的值将从开始。