Договоренность, что не того же результата 1 в 2 раза продолженные

Моя программа в js. То, что я хочу сделать, состоит в том, чтобы каждый раз, когда разгладилась кнопка с функцией было включено это, но проблема состоит в том, что результат повторяется продолженный и причиняющий беспокойство.

var Loot = ["manzana", "pera","melon","sandia","limón","durazno"];



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


        document.getElementById("demo").innerHTML =""+Hrandom;

я все еще noob, но бросаю ему желания, когда я могу. Я, что ему не хватает ago.... чего-то, мне говорят, что ему не хватает IF, но не где. Или в возможно loop.

Только я хочу, чтобы вышел яблоко, лимон... и т.д... не лимон, лимон, яблоко... только я хочу, чтобы не повторился два в 3 раза продолженные.

3
задан 14.07.2019, 05:07
5 ответов

Я не понял очень хорошо того, что ты хочешь сделать, но это добавляет элементы твоей договоренности N разы, не повторяя их.

<p id="demo"></p>

for(var i = 0; i < 10; i++){
    var Loot = ["manzana", "pera","melon","sandia","limón","durazno"];
    var Hrandom = Loot[Math.floor(Loot.length * Math.random())];
    if(document.getElementById("demo").innerHTML.indexOf(Hrandom) === -1){
        document.getElementById("demo").innerHTML +=" "+Hrandom+" ";
    }
}
1
ответ дан 03.12.2019, 19:58

Если ты не хочешь, чтобы он повторился, просто войди в цикл до тех пор, пока это не будет той же стоимостью, которую тебе дала Гєltima, раз.

Немного как:

var Loot = ["manzana", "pera","melon","sandia","limón","durazno"];
do
  var Hrandom = Loot[Math.floor(Loot.length * Math.random())];
while (""+Hrandom == document.getElementById("demo").innerHTML)
document.getElementById("demo").innerHTML =""+Hrandom;
0
ответ дан 03.12.2019, 19:58
  • 1
    мальчики большое спасибо, это mejorssss – Oscar Buentello 12.10.2016, 22:23
var Loot = ["manzana", "pera","melon","sandia","limón","durazno"];
var Hrandom;
 while(document.getElementById("demo").innerHTML == ""+Hrandom){
    var Hrandom = Loot[Math.floor(Loot.length * Math.random())];
 }
    document.getElementById("demo").innerHTML =""+Hrandom;

Уже никогда не будут повторять

0
ответ дан 03.12.2019, 19:58
  • 1
    Забота со структурой while, подтверждать и # 225; с переменной Hrandom, что в и # 250; n не est и # 225; определенная. undefined быть и # 225; результат – Dev. Joel 12.10.2016, 21:57
  • 2
    если, я ушло определять ее наверху с var Hrandom; – Brobz 12.10.2016, 22:28
  • 3
    Не надо объявлять переменную до времени, я думаю, что soluci и # 243; n он состоит в том, чтобы вкладывать while, смотрит, например, мой ответ на этот же самый вопрос. – jachguate 12.10.2016, 22:31

Я оставляю вам aquГ - другой пример с одной funciГіn, чтобы обнаруживать возможно дубликаты в array.

var Loot  = ['manzana', 'pera', 'melon', 'sandia', 'limón', 'durazno'];
var Hrandom = [];

for (var i = 0; i < Loot.length; i++) {  
  Hrandom.push(Loot[Math.floor(Loot.length * Math.random())]);        
}

function detectarDuplicado(item){
  
  var noDuplicado = [];
  
  item.forEach(function(item) {
  
      if (noDuplicado.indexOf(item) === -1) {
      
          noDuplicado.push(item);
      }
  });
  
  return noDuplicado.join(', ');
}


document.getElementById('demo').textContent = detectarDuplicado(Hrandom);
<p id="demo"></p>
0
ответ дан 03.12.2019, 19:58

Если я понимаю хорошо, которое ты имеешь в виду, это был бы код функции, которая, после того, как работал бы, он выбирает случайным образом элемент договоренности, и напиши эту стоимость в контенте html этикетки с id demo:

var Loot = ["manzana", "pera","melon","sandia","limón","durazno"];

var miFuncion = function(){
  var Hrandom = Loot[Math.floor(Loot.length * Math.random())];
  document.getElementById("demo").innerHTML = Hrandom;
}

Сейчас, чтобы кликать, я представляю, что у тебя будет кнопка в этикетке html:

<button id="btnrandom" type="button">aleatorio</button>

ты можешь добавлять к вышеупомянутой кнопке признак onclick для того, чтобы он выполнил твою функцию, кликнув на:

<button id="btnrandom" type="button" onclick="miFuncion();">aleatorio</button>

или из-за javascript:

document.getElementById("btnrandom").addEventListener("click",miFuncion);

и я схватил каждый раз, когда нажимают на кнопку стоимость в div с id = "demo" он изменится.

Я оставляю ссылку Fiddle с кодом функционируя: https://jsfiddle.net / 5fr29ju0 /

0
ответ дан 03.12.2019, 19:58
  • 1
    Проблема, которую он описывает, - что стоимость, возвращенная из-за random повторяется и дает ту же стоимость, два раза даже три раза продолженный. Равный она хорошая выборы для в и # 241; adir funci и # 243; n в событие click – Dev. Joel 12.10.2016, 23:05
  • 2
    Весь raz и # 243; n, я думаю, что ответ @jachguate очень хорошо. Спасибо за aclaraci и # 243; n – Dade 14.10.2016, 01:17