gpt4 book ai didi

javascript - typescript :放大或缩小接收对象?

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:39 26 4
gpt4 key购买 nike

我的应用程序中有一些食谱,我想将它们放大或缩小到卡路里量。

我的接收对象看起来像这样:

{
title: "some title",
calories: 700,
fat: 20,
carbs: 10,
protein: 40,
//...
ingredient: [
{
name: "sugar",
amount: 20,
measurement: "g"
},
{
name: "banana",
amount: 1,
measurement: "piece"
}
]
}

我的问题:将热量增加到 1000 卡路里或减少到例如 400 卡路里的最佳方法是什么?

是否可以用整个对象做一个经典的“3 组”:首先计算此食谱的 100 卡路里,然后计算所有属性的 400、500 或 1000 卡路里?

感谢您的帮助:)

最佳答案

这似乎有效:

interface Ingredient {
name: string;
amount: number;
measurement: "g" | "piece";
}

interface Reciepe {
title: string;
calories: number;
fat: number;
carbs: number;
protein: number;
ingredient: Ingredient[];
}

function scale(reciepe: Reciepe, calories: number): Reciepe {
const ratio = calories / reciepe.calories;
const scaled = Object.assign({}, reciepe);

scaled.calories = calories;
scaled.fat = reciepe.fat * ratio;
scaled.carbs = reciepe.carbs * ratio;
scaled.protein = reciepe.protein * ratio;

for (let i = 0; i < reciepe.ingredient.length; i++) {
scaled.ingredient[i].amount = reciepe.ingredient[i].amount * ratio;
}

return scaled;
}

( code in playground )

关于javascript - typescript :放大或缩小接收对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41534020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com