【发布时间】:2020-01-07 17:45:36
【问题描述】:
我有一个类似以下的问题:
let fruits = { Apples:0, Bananas:0, Oranges:0 }
var basket = ['Apples', 'Oranges', 'Bananas', 'Potatoes', 'Cucumber']
目标:根据篮子数组中水果的存在来更新水果对象中的计数。
注意:fruits 对象可能包含比篮子数组中的项目更多的属性(水果)。
对于这种情况,请假设购物篮中的商品不会出现多次。
我想出了两个解决方案:
for (const fruit of Object.keys(fruits)) {
basket.includes(fruit) && fruits[fruit]++
}
basket.forEach( (fruit) => {
fruits.hasOwnProperty(fruit) && fruits[fruit]++
} )
解决此问题的最有效方法(就性能而言)是什么?
【问题讨论】:
-
如果有多个香蕉,第一个甚至都行不通,对吧?
-
我假设如果 'basket' 有两次香蕉,你会希望
fruits有Bananas: 2 -
对不起,我应该澄清一下 - 在这种情况下,您不太可能让任何项目出现两次。
-
不太可能!= 从不
标签: javascript arrays loops object