【问题标题】:How to use Javascript to randomize text? [duplicate]如何使用 Javascript 随机化文本? [复制]
【发布时间】:2016-04-18 23:01:01
【问题描述】:

目标:当页面加载时,您会从数组中随机获取 5 个引号。引号不应相同/重叠。我已经能够使用下面的代码随机生成一个报价。我无法弄清楚的是如何显示多个随机引号而不让它们重复。

我的问题是,即使我多次显示 math.random 的结果,它也是相同的随机引用——例如,页面将加载随机引用“#1”并显示该引用 5 次而不是 5 次随机不同引号。

当前JS代码:

var quotes = ['Quote 1', 'Quote 2', 'Quote 3', 'Quote 4', 'Quote 5', 'Quote 6', 'Quote 7', 'Quote 8', 'Quote 9', 'Quote 10'];
var quote = quotes[Math.floor(Math.random()*quotes.length)];

var result = document.querySelector("#quoteOne");
result.textContent = (quote);
<p id="quoteOne"></p>

【问题讨论】:

    标签: javascript arrays string lodash


    【解决方案1】:

    如果您考虑使用 Lodash,这可以通过 _.sample 解决

    var randomQuote = _.sample(quotes);
    

    DEMO

    【讨论】:

    • 因为这并不能真正回答问题。您只是将工作推迟到图书馆。如果他们询问如何“使用 Lodash”执行此操作,或者提供任何其他指示他们已经在使用 Lodash,那么我相信你会没事的。
    • 我不同意,OP 没有拒绝第三方库,他可能不知道存在像 Lodash 这样的东西并解决了他的问题,即保持他的代码编写和测试良好。 Meta上有几个讨论(例如meta.stackoverflow.com/questions/318411/…
    • 我和@GG 在一起。对此。特别是在 NPM leftpad 崩溃之后,Lodash 经常被讨论为一种 JS 的“标准库”。
    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 2016-07-20
    • 2011-03-25
    • 1970-01-01
    • 2011-01-27
    相关资源
    最近更新 更多