Google apps script 随机选择一个数组,直到命中特定参数

Google apps script 随机选择一个数组,直到命中特定参数,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我正试图在Google Sheets中创建一个交互式膳食跟踪/计划器 我有一张桌子,上面有食物和有关kcal及其宏观营养价值的信息 我已经为一个人需要多少千卡制定了一个逻辑,这为每天每顿饭提供了一个千卡和大量营养,例如 早餐:518千卡,碳水化合物207,蛋白质62,脂肪19 现在我想随机地把上面提到的表中的食物放在一起,直到这些数字被自动命中 有很多方法可以从数组中随机选择对象,但我一直无法将其与循环和截止日期结合起来 有什么想法吗 非常感谢我没有看到任何更新,因此我将继续我的假设,即

我正试图在Google Sheets中创建一个交互式膳食跟踪/计划器

  • 我有一张桌子,上面有食物和有关kcal及其宏观营养价值的信息

  • 我已经为一个人需要多少千卡制定了一个逻辑,这为每天每顿饭提供了一个千卡和大量营养,例如

    早餐:518千卡,碳水化合物207,蛋白质62,脂肪19

现在我想随机地把上面提到的表中的食物放在一起,直到这些数字被自动命中

有很多方法可以从数组中随机选择对象,但我一直无法将其与循环和截止日期结合起来

有什么想法吗


非常感谢

我没有看到任何更新,因此我将继续我的假设,即您所坚持的内容,并说它正在构建阵列,确保您在达到kCal限制后停止

基本上,您将使用3个变量,
foodTable
作为您的食物数组,
mealttable
这是您将生成的餐桌和某种kCal跟踪器,我们称之为
kCal

本质上,您希望使用
do。。while
和您的
while
语句基本上是
kCal
其中
target
是您想要达到的值。如果您只想使用
foodTable
中的每个值一次,则需要使用
selectedFood=foodTable.splice(idx,1)
,如果您希望能够重复使用sime项,则使用
slice()

您的
idx
是一个随机生成的数字,介于0和
mealTable.length
之间(如果您使用
splice
从可能的食物列表中删除一个项目,这将确保您不会生成无效的数字)


然后使用
kCal+=selectedFood[0][col]
将kCal值添加到跟踪器中,其中
col
是存储kCal值的列号。确保每次启动
while
循环之前,如果重复此操作,您都需要重置
kCal=0
。请记住,此方法并不关心您将要超过目标kCal多少,您可能需要添加某种
if
语句,以确保在达到目标之前不会用完物品。

Hi,欢迎来到StackOverflow。你能澄清一点你被困在什么地方吗?是否正在构建食物/膳食数组,以及在达到kcal标记后如何停止循环?请显示任何当前代码和预期的函数输入(数组、表结构等)。我们回答脚本问题,而不是设计问题。