【问题标题】:Change random selection from Array [duplicate]从数组中更改随机选择[重复]
【发布时间】:2021-05-06 21:31:30
【问题描述】:

我目前正在创建一个从数组中随机选择一个值的抽认卡系统。

不过,我还想要另一个按钮“switchBtn”来更改显示的随机值。

有没有办法做到这一点?

当前代码:

var kanaArray = ["あ","い","う","え","お","か","き","く","け","こ","さ","し",
"す","せ","そ","た","ち","つ","て","と",
"な","に","ぬ","ね","の","は","ひ","ふ","へ",
"ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る",
"れ","ろ","わ","を","ん"]

var kanaPassed = []

let kanaShown = kanaArray[Math.floor(Math.random()*kanaArray.length-1)];

//logic

var started = false;


// kana buttons queries
$(document).ready(function(){
    $(".startBtn").click(function(){
        started = true
        $('.startBtn').css("visibility", 'hidden');
        $('.switchBtn').css("visibility", 'visible');
        $('h3').text(kanaShown);
        $('h3').css("visibility",'visible')
        console.log(started)
    })
});

$('.switchBtn').click(function(){

    });

【问题讨论】:

  • 随机播放 stackoverflow.com/questions/2450954/… const shuffled = shuffle(kanaArray); 并在您的代码中 var item = shuffled.pop(); $('h3').text(item);
  • @epascarello 我对这个问题的解读是,当单击切换按钮时,OP 希望从数组中拉出一个新的单个随机项,但我可能是错的。
  • @RoryMcCrossan 这就是代码的作用......(我没有关闭它)
  • 对不起!我的错,我注意到问题已关闭并扫描阅读您的评论。

标签: javascript jquery arrays random


【解决方案1】:

您具有从数组中检索随机假名的逻辑。您需要做的就是将该逻辑放入一个函数中并在两个按钮单击事件上调用它:

var kanaArray = ["あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し",
  "す", "せ", "そ", "た", "ち", "つ", "て", "と",
  "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ",
  "ほ", "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る",
  "れ", "ろ", "わ", "を", "ん"
]
let getRandomKana = () => kanaArray[Math.floor(Math.random() * kanaArray.length - 1)];

// kana buttons queries
$(document).ready(function() {
  $(".startBtn").click(function() {
    $('.startBtn').css("visibility", 'hidden');
    $('.switchBtn').css("visibility", 'visible');
    $('h3').text(getRandomKana()).css("visibility", 'visible')
  })

  $('.switchBtn').click(function() {
    $('h3').text(getRandomKana());
  });
});
h3 {
  visibility: hidden;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="startBtn">Start</button>
<button class="switchBtn">Switch</button>

<h3></h3>

【讨论】:

  • 感谢您的快速回复,请问这是什么:“= () =>” 是什么?我在我正在做的课程中没有遇到过它
  • 这是一个arrow function。它是function() { return /* code */; }); 的缩写形式。但请注意,IE 不支持它。
  • 您好,很抱歉再次打扰您,如果我有两个单独的数组(一个是英文的,一个是日文的),是否有可能使用此代码为两者返回相同的索引值?
  • 当然,只需使用索引来访问两者,例如kana = kanaArray[index]; english = englishArray[index];
猜你喜欢
  • 1970-01-01
  • 2016-02-01
  • 2012-01-23
  • 1970-01-01
  • 2014-07-05
  • 2012-04-11
  • 2013-09-21
  • 2019-01-28
  • 1970-01-01
相关资源
最近更新 更多