从键数组获取对象的值

时间:2020-11-02 17:36:05

标签: javascript arrays object

有一个对象可以保存杂货店的商品和价格:

let groceryStore = {
    'Banana' : .25,
    'Apple' : .30,
    'Lettuce' : 1.20,
    'Onion' : .15,
    'Celery' : 1.15,
    'Garlic' : 1.00,
    'Tomato' : .50
}

您有一系列键:

let groceryList = ['Tomato', 'Lettuce', 'Garlic', 'Onion']

我现在需要找到数组(groceryList)中键的所有值的总和。

1 个答案:

答案 0 :(得分:2)

要获取一个数组并将其减少为另一个值,通常可以使用适当命名的Array.reduce()。通常,对一个数字数组求和,可以减少该数组,然后将每个数字加到累加器中(在示例中为sum

arrayOfNumbers.reduce((sum, num) => sum + num, 0)

以您为例,减少键的数组,并使用key从对象中获取值:

const groceryStore = {
  'Banana': .25,
  'Apple': .30,
  'Lettuce': 1.20,
  'Onion': .15,
  'Celery': 1.15,
  'Garlic': 1.00,
  'Tomato': .50
}

const groceryList = ['Tomato', 'Lettuce', 'Garlic', 'Onion']

const result = groceryList.reduce((sum, key) => sum + groceryStore[key], 0)

console.log(result)