简体   繁体   English

用于显示来自过滤器的随机数组值的按钮

[英]Button to display random array value from filter

I am trying to have a button that randomly displays an item of an array based on a filter using a button to cycle through the array.我正在尝试使用一个按钮来随机显示一个基于过滤器的数组项目,使用按钮在数组中循环。

My current HTML is:我当前的 HTML 是:

<input type="button" id="btnSearch" value="Search" onclick="GetValue();" />
<br>
<img id="target" src="/img/test.png">
<p id="message">test</p>

and my JS is:我的JS是:

function GetValue() {
  var quotes = [
    {
      name: 'Roller Coaster',
      artic: ['initialR', 'medialR', 'finalR'],
      img: '/img/rollercoaster.png'
    },
    {
      name: 'Rooster',
      artic: ['initialR', 'finalR'],
      img: '/img/rooster.png'
    },
    {
      name: 'Rose',
      artic: ['initialR'],
      img: '/img/rose.png'
    }
  ];
  var filteredQuotes = quotes.filter(x => x.artic.includes('medialR'));
  var random = filteredQuotes[Math.floor(Math.random() * filteredQuotes.length)];

  document.getElementById('message').innerHTML = random.name;
  document.getElementById('target').innerHTML = random.img;
}

The filter I have on this would only display "Roller Coaster" based on the filter, but currently nothing changes on click.我对此的过滤器只会根据过滤器显示“过山车”,但目前单击时没有任何变化。

I figured it out!我想到了!

const btn = document.querySelector('#btnSearch');

function GetValue() {
  var quotes = [
    {
      name: 'Roller Coaster',
      artic: ['initialR', 'medialR', 'finalR'],
      img: '/img/rollercoaster.png'
    },
    {
      name: 'Rooster',
      artic: ['initialR', 'finalR'],
      img: '/img/rooster.png'
    },
    {
      name: 'Rose',
      artic: ['initialR', 'finalZ', 'CVC', 'syl1'],
      img: '/img/rose.png'
    }
  ];
  const filteredQuotes = quotes.filter(x => x.artic.includes('medialR'));

  var random = filteredQuotes[Math.floor(Math.random() * filteredQuotes.length)];

  document.getElementById('message').innerHTML = random.name;
  document.getElementById('target').innerHTML = random.img;
}

btn.addEventListener('click', () => {
  GetValue();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM