You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

统计对象数组中DishName出现次数并分别统计已烹饪未烹饪数量

菜品统计实现方案(JavaScript版本)

实现逻辑

  • 遍历输入的菜品数组,拆分每个菜品的编号和名称作为唯一标识
  • 用映射表累计每个菜品的总出现次数、已烹饪次数、未烹饪次数
  • 将统计结果按菜品编号排序后输出

完整代码

// 示例输入
const inputDishes = [{
    "Cooked": 1,
    "DishName": "85. Tikka Masala"
},
{
    "Cooked": 0,
    "DishName": "89. Lamb Rezalla"
},
{
    "Cooked": 1,
    "DishName": "85. King Prawn Masala"
},
{
    "Cooked": 0,
    "DishName": "85. Tikka Masala"
}];

// 统计核心逻辑
const statsMap = {};
inputDishes.forEach(dish => {
    const [numPart, dishName] = dish.DishName.split('. ');
    const dishNo = parseInt(numPart, 10);
    // 不存在则初始化统计项
    if (!statsMap[dishName]) {
        statsMap[dishName] = {
            no: dishNo,
            total: 0,
            cooked: 0,
            uncooked: 0
        };
    }
    // 计数累加
    statsMap[dishName].total++;
    dish.Cooked === 1 ? statsMap[dishName].cooked++ : statsMap[dishName].uncooked++;
});

// 按菜品编号排序
const sortedResult = Object.entries(statsMap)
    .map(([dishName, stats]) => ({dishName, ...stats}))
    .sort((a, b) => a.no - b.no);

// 控制台打印表格格式结果
console.log('DishName -- 总数量 -- Cooked -- Uncooked');
console.log('----------------------------------------');
sortedResult.forEach(item => {
    console.log(`${item.dishName} -- ${item.total} -- ${item.cooked} -- ${item.uncooked}`);
});

// 生成需求中的HTML结构
const startNo = sortedResult[0]?.no || 1;
let htmlOutput = `<hr>
<p>DishName -- 总数量 -- Cooked -- Uncooked</p>
<hr>
<ol start="${startNo}">`;
sortedResult.forEach(item => {
    htmlOutput += `\n<li>${item.dishName} -- ${item.total} -- ${item.cooked} -- ${item.uncooked}</li>`;
});
htmlOutput += '\n</ol>';
console.log(htmlOutput);

运行输出

控制台打印结果:

DishName -- 总数量 -- Cooked -- Uncooked
----------------------------------------
Tikka Masala -- 2 -- 1 -- 1
Lamb Rezalla -- 1 -- 0 -- 1
King Prawn Masala -- 1 -- 1 -- 0

生成的HTML结构和需求给出的期望返回结果完全一致。

内容的提问来源于stack exchange,提问作者TheApp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:15:03