You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
2.9 KiB

export const foodCaloriesDB = {
// 主食类
'米饭': 116,
'馒头': 223,
'面条': 110,
'包子': 200,
'饺子': 220,
'油条': 389,
'面包': 265,
'粥': 50,
'炒面': 260,
'炒饭': 290,
// 肉类
'猪肉': 143,
'牛肉': 106,
'鸡肉': 167,
'鸭肉': 240,
'羊肉': 203,
'鱼肉': 100,
'虾': 85,
'蛋': 155,
// 蔬菜类
'西红柿': 20,
'黄瓜': 16,
'胡萝卜': 36,
'白菜': 20,
'菠菜': 23,
'生菜': 15,
'茄子': 24,
'土豆': 81,
'青椒': 20,
// 水果类
'苹果': 52,
'香蕉': 89,
'橙子': 47,
'葡萄': 69,
'西瓜': 32,
'梨': 51,
'草莓': 32,
'柚子': 39,
// 饮品类
'牛奶': 79,
'豆浆': 31,
'可乐': 42,
'果汁': 54,
'咖啡': 1,
'奶茶': 150,
// 常见菜品
'西红柿炒鸡蛋': 100,
'宫保鸡丁': 260,
'鱼香肉丝': 195,
'红烧肉': 425,
'糖醋里脊': 290,
'麻婆豆腐': 174,
'青椒炒肉': 180,
'回锅肉': 327,
'蒜蓉炒菜心': 45,
'炒青菜': 30,
'土豆炖牛肉': 215,
'红烧排骨': 289,
'清炒白菜': 35,
'炸鸡': 260,
'水煮鱼': 180,
'酸菜鱼': 168,
// 零食类
'薯片': 536,
'巧克力': 546,
'饼干': 435,
'爆米花': 382,
'坚果': 607,
'冰淇淋': 267,
'蛋糕': 257,
// 快餐类
'汉堡': 295,
'披萨': 266,
'炸薯条': 312,
'炸鸡翅': 246,
'热狗': 290
}
// 模糊搜索函数
export const searchFood = (keyword) => {
keyword = keyword.toLowerCase()
const results = []
for (const [food, calories] of Object.entries(foodCaloriesDB)) {
if (food.toLowerCase().includes(keyword)) {
results.push({
name: food,
calories: calories
})
}
}
return results
}
// 获取单个食物的卡路里
export const getFoodCalories = (foodName) => {
// 直接匹配
if (foodCaloriesDB[foodName]) {
return foodCaloriesDB[foodName]
}
// 模糊匹配
const results = searchFood(foodName)
if (results.length > 0) {
return results[0].calories
}
return null
}
// 获取食物分类列表
export const getFoodCategories = () => {
return {
'主食类': ['米饭', '馒头', '面条', '包子', '饺子', '油条', '面包', '粥'],
'肉类': ['猪肉', '牛肉', '鸡肉', '鸭肉', '羊肉', '鱼肉', '虾', '蛋'],
'蔬菜类': ['西红柿', '黄瓜', '胡萝卜', '白菜', '菠菜', '生菜', '茄子', '土豆', '青椒'],
'水果类': ['苹果', '香蕉', '橙子', '葡萄', '西瓜', '梨', '草莓', '柚子'],
'饮品类': ['牛奶', '豆浆', '可乐', '果汁', '咖啡', '奶茶'],
'常见菜品': ['西红柿炒鸡蛋', '宫保鸡丁', '鱼香肉丝', '红烧肉', '糖醋里脊', '麻婆豆腐'],
'零食类': ['薯片', '巧克力', '饼干', '爆米花', '坚果', '冰淇淋', '蛋糕'],
'快餐类': ['汉堡', '披萨', '炸薯条', '炸鸡翅', '热狗']
}
}