首页 > 解决方案 > 从键数组中获取对象的值

问题描述

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

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)中键的所有值的总和。

标签: javascriptarraysobject

解决方案


要获取一个数组,并将其减少为另一个值,您通常可以使用恰当命名的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)


推荐阅读