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

生成随机组合句子时,JavaScript中Math.random的最佳放置位置?

随机混合数组生成句子的实现方案

需求回顾

  • 已完成:从三个数组按索引一一配对生成10句句子
  • 待实现:用Math.random()随机混合三个数组中的单词生成新句子,允许单词重复使用

实现位置说明

你需要把Math.random()的调用放在for循环的内部,每次循环时为三个数组分别生成随机索引,替换原来固定使用的循环变量i。这样每一次生成句子时,都会从三个数组里随机挑选元素,而非按固定索引配对。

修改后的代码

let substantiv = ['Daddy', 'Jag', 'Hästen', 'Mamma', 'Glaset', 'Gameboy', 'Pelle','Blondie', 'Sängen', 'Bilen']
let verb = ['cyklar', 'rider', 'bakar', 'springer', 'hoppar', 'äter', 'dricker', 'går', 'läser', 'sover']
let adj = ['bra', 'dåligt', 'roligt', 'inte', 'alltid', 'på Söndag', 'aldrig', 'imorgon', 'idag', 'snabbt']

let cont = document.createElement('div')
document.body.append(cont)

for(let i=0; i<10; i++){
    const el1 = document.createElement('div')
    // 为每个数组生成随机索引
    const randSub = Math.floor(Math.random() * substantiv.length)
    const randVerb = Math.floor(Math.random() * verb.length)
    const randAdj = Math.floor(Math.random() * adj.length)
    el1.textContent = `${substantiv[randSub]} ${verb[randVerb]} ${adj[randAdj]}`
    cont.append(el1)    
}

代码解释

  • Math.random()生成0到1之间的随机小数,乘以数组长度后得到0到数组长度(不含)的随机数,再用Math.floor()取整,就能得到合法的数组索引。
  • 把随机索引的生成放在循环内部,确保每一次循环都会生成全新的随机组合,满足“允许重复使用单词”的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:01:04