具有随机结果的组合生成器

我对 JavaScript 非常陌生,我正在尝试制作一个生成器,将名称组合成对,然后在按下按钮时随机选择一对。


如何使结果只有 1 个随机对?以及如何将其添加到按钮?


const result = [];

result.length = 2;


function combine(input, len, start) {

  if (len === 0) {

    console.log(result.join(" x "));

    return;

  }

  for (var i = start; i <= input.length - len; i++) {

    result[result.length - len] = input[i];

    combine(input, len - 1, i + 1);

  }

}


const Names = ['Name1', 'Name2', 'Name3', 'Name4', 'Name5'];


combine(Names, result.length, 0);

<div class="Generator">

  <div id="button"></div>

  <button id="button1">Generate</button>

</div>


四季花海
浏览 207回答 1
1回答

摇曳的蔷薇

一个简单的实现是:从数组中选择第一个随机元素从数组中选择第二个随机元素(删除第一个选择的随机元素)element1 和 element2 的组合将产生随机对const names = ['Name1', 'Name2', 'Name3', 'Name4', 'Name5'];function randomPair(arr) {&nbsp; const index1 = Math.floor(Math.random() * arr.length);&nbsp; const firstElem = arr[index1];&nbsp;&nbsp;&nbsp; // remove firstElement from array since equal pairs aren't allowed&nbsp; const newArr = arr.filter(x => x !== firstElem);&nbsp; const index2 = Math.floor(Math.random() * newArr.length);&nbsp; const secondElem = newArr[index2];&nbsp; return firstElem + 'x' + secondElem;}document.getElementById('button1').addEventListener('click',&nbsp;function() {this.textContent=randomPair(names);});<div class="Generator">&nbsp; <button id="button1">Generate</button></div>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript