【发布时间】:2021-01-18 10:23:42
【问题描述】:
我来自 Python 背景,所以在迭代 JS 对象方面我还比较陌生。使用 Python,您可以创建嵌套的 for 循环以进入键值对。我的问题是如何遍历这个对象并将大于给定数字的值附加到数组中。
我需要遍历的对象
const foodmenu = {
title: 'Menu',
sections: [
{
title: 'App',
items: [
{
title: 'Cookie',
available: true,
price: 3
},
{
title: 'Snicker',
available: true,
price: 12
},
{
title: 'Donuts',
available: true,
price: 11
}
]
},
{
title: 'FullMeal',
items: [
{
title: 'Steak',
available: false,
price: 33
},
{
title: 'Chinese Chicken',
available: true,
price: 14
},
{
title: 'Fried Chicken',
available: false,
price: 17
}
]
},
]
}
因此,首先我需要创建一个函数,该函数接收价格数字并接收对象。所以这是我到目前为止所尝试的,我不知道所有的 JS 语法,但在这一点上它比工作代码更伪代码。
function findPriceAbove(price, foodmenu){
//create empty array to append the key names and values, E.G. ['App-Cookie(3)']
const abovePriceArray = []
for (var key in foodmenu){
if (foodmenu.hasOwnProperty(key)){
for (const [key, value] of Object.entries(foodmenu)) {
if foodmenu[value] > price and available == true;
abovePriceArray.push(key(App),name(Cookie),value(3)
}
}
}
return abovePriceArray
}
【问题讨论】:
-
您能否通过示例显示您想要的示例输出
-
例如,如果价格为 13,则 abovePriceArray = ['FullMeal-Chinese Chicken(14)'] 因为“available is true”并且它是唯一高于 13 的可用价格。输出将是该数组 ['FullMeal-Chinese Chicken(14)']
标签: javascript