gpt4 book ai didi

javascript - 有没有办法在 document.write 中编写 i/else 语句?

转载 作者:行者123 更新时间:2023-11-28 16:53:28 24 4
gpt4 key购买 nike

我正在尝试制作一个文本随机生成器,它可以根据某些单词及其放置位置创建新句子。我创建了名词、动词、数量等数组。问题是,我需要它能够给出不同数量的某些名词(例如,一个苹果,两个香蕉),并且我需要它来匹配数量该词的单数或复数版本。我不能说“一个苹果”或“两个香蕉”。我想知道做到这一点的最佳方法。我考虑过使用 if/else 语句,但不确定这在 document.write 中是否可行。我有很多地方需要在较长的句子中执行此操作,因此我试图避免编写一百万个不同的数组。

var amount = ["zero", "one", "two"]; 
var fruit = ["apple", "banana", "orange", "grape"];

var rand1 = [Math.floor ( Math.random() * amount.length )];
var rand2 = [Math.floor ( Math.random() * fruit.length )];

document.write("I have" + " " + amount[rand1] + fruit[rand2] + ".");

最佳答案

使用条件运算符。如果随机数为 one,则不要添加 s,否则添加 s:

var amount = ["zero", "one", "two"];
var fruit = ["apple", "banana", "orange", "grape"];

var rand1 = [Math.floor(Math.random() * amount.length)];
var rand2 = [Math.floor(Math.random() * fruit.length)];

document.write("I have" + " " + amount[rand1] + ' ' + fruit[rand2] + (amount[rand1] === 'one' ? '' : 's') + ".");

使用模板文字可能更具可读性:

var amount = ["zero", "one", "two"];
var fruit = ["apple", "banana", "orange", "grape"];

var rand1 = [Math.floor(Math.random() * amount.length)];
var rand2 = [Math.floor(Math.random() * fruit.length)];

document.write(`I have ${amount[rand1]} ${fruit[rand2]}${amount[rand1] === 'one' ? '' : 's'}.`);

表达式

amount[rand1] === 'one' ? '' : 's'

表示:如果表达式 amount[rand1] 的计算结果为 one,则整个条件表达式的计算结果为 '',否则整个条件表达式的计算结果为 ''。当您需要将某些内容评估为一个值或另一个值时,它是 if/else 的更简洁版本。

另请注意,document.write 很少是一个好主意 - 如果您想向用户显示数据,请考虑将文本插入元素或使用 console.log或类似的东西。 (参见 Why is document.write considered a "bad practice"?

关于javascript - 有没有办法在 document.write 中编写 i/else 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59641113/

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