为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2021-11-12 15:57:36
我对 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>
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

一个简单的实现是:

  1. 从数组中选择第一个随机元素

  2. 从数组中选择第二个随机元素(删除第一个选择的随机元素)

  3. element1 和 element2 的组合将产生随机对

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


function randomPair(arr) {

  const index1 = Math.floor(Math.random() * arr.length);

  const firstElem = arr[index1];

  

  // remove firstElement from array since equal pairs aren't allowed

  const newArr = arr.filter(x => x !== firstElem);

  const index2 = Math.floor(Math.random() * newArr.length);

  const secondElem = newArr[index2];


  return firstElem + 'x' + secondElem;

}



document.getElementById('button1').addEventListener('click', 

function() {this.textContent=randomPair(names);});

<div class="Generator">

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

</div>


查看完整回答
反对 回复 2021-11-12
  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信