Javascript 基于迭代选择字符串

Javascript 基于迭代选择字符串,javascript,arrays,Javascript,Arrays,我一直在尝试使用CodeWars来练习Javascript,但我仍处于初级学习阶段。我被这一个问题困住了,我希望有人能以最简单的方式向我解释如何通过基于数字输入的大量字符串进行迭代(我相信这就是它的名称) 问题是: 你从一朵花上摘下一片花瓣,说出下面的每句话 每次花瓣被撕裂时: 我爱你 一点点 很多 热情地 疯狂地 一点也不 你在这个kata中的目标是确定你会说什么短语 给定数量花瓣的花,其中nb\u花瓣>0 到目前为止,我有: function howMuchILoveYou(nbPetals

我一直在尝试使用CodeWars来练习Javascript,但我仍处于初级学习阶段。我被这一个问题困住了,我希望有人能以最简单的方式向我解释如何通过基于数字输入的大量字符串进行迭代(我相信这就是它的名称)

问题是:

你从一朵花上摘下一片花瓣,说出下面的每句话 每次花瓣被撕裂时:

我爱你

一点点

很多

热情地

疯狂地

一点也不

你在这个kata中的目标是确定你会说什么短语 给定数量花瓣的花,其中
nb\u花瓣>0

到目前为止,我有:

function howMuchILoveYou(nbPetals) {

var petalSaying = ["I love you", "A little", "A lot", "Passionately", 
"Madly", "Not at all"];

for(var petals = 0; nbPetals > 0; nbPetals--);
}
而且我不确定在这之后要到哪里才能让它根据
nbPetals
输入的数字打印出所需的字符串

此外,例如,如果数字输入为
7
,它将输出
I love you


提前感谢您的帮助。

您不需要进行迭代,只需按索引访问给定的数组元素即可。如果数量大于元素数量,请使用模数环绕

function howMuchILoveYou(nbPetals) {
    var petalSaying = ["I love you", "A little", "A lot", "Passionately", "Madly", "Not at all"];
    var index = (nbPetals - 1) % petalSaying.length;
    return petalSaying[index];
}

nbPetals-1
根据数组索引从
0
开始这一事实进行调整,但是
nbPetals
1
开始这一问题的措辞相当糟糕。您是为每个被撕下的花瓣说出每个短语,还是为每个被撕下的花瓣说出其中一个短语?只有在所有花瓣被撕下后,该短语才会显示。所以如果这朵花有8片花瓣,到最后它应该会打印出来,“一点。”谢谢你的回答,我想我永远不会想到这个。你能解释一下模在这种情况下做了什么吗?它做模总是做的事情,它返回除法的剩余部分。所以你得到了时钟式的算法。