1

私が持っているのはhttp://garrettstelly.comで、起動時に 20 の用語のうちの 1 つを吐き出します。コードは非常に重いですが、それで問題ありません。

無作為に名前を吐き出すウェブサイトを作ろうと思っているのですが、問題は名前が無数にあることです。現在使用している js では、ランダム ロールと 0 から 1 の間の偶数部分を使用して名前を読み取ります。それに関する問題は、1 つのフレーズだけを追加することはできないということです。確率が偶数になるように、一度にチャンクを追加する必要があります。

一度に 1 つずつ追加できる無限の可能性を持つスクリプトを作成するにはどうすればよいですか?

garrettstelly.com の JavaScript は次のとおりです。

var roll = Math.random()
if (roll<0.05)
{document.write('<a href="http://www.facebook.com/abroheem.vonclinxenburg">Bro-Heem</a>');}
else if (roll<0.10)
{document.write('I am too white for my own good');}
else if (roll<0.15)
{document.write('I love the way you paste those stickers.');}
else if (roll<0.20)
{document.write('You probably were not just thinking about Wichita');}
else if (roll<0.25)
{document.write('Yummy, Adhesive!');}
else if (roll<0.30)
{document.write('<a href="http://www.rolex.com/">Rolex</a>');}
else if (roll<0.35)
{document.write('There is a 5% chance that you will see this when you first visit this website.');}
else if (roll<0.40)
{document.write('Making Money.<br>Choppas How We Do Today.');}
else if (roll<0.45)
{document.write('45, get your bills roll em high.');}
else if (roll<0.50)
{document.write('I WILL teach you how to fish');}
else if (roll<0.55)
{document.write('I am a gangsta.');}
else if (roll<0.60)
{document.write('Please get out of my website');}
else if (roll<0.65)
{document.write('<a href="http://www.facebook.com/luke.immel?fref=ts">derriere</a>');}
else if (roll<0.70)
{document.write('I think YOU are a Q T PIE');}
else if (roll<0.75)
{document.write('X=Fries');}
else if (roll<0.80)
{document.write("Idle hands are the Devil's playground.<br>The Devil is smaller than hands.");}
else if (roll<0.85)
{document.write('I am about to be late for class');}
else if (roll<0.90)
{document.write('"Hipster"');}
else if (roll<0.95)
{document.write('I am late for class');}
else
{document.write('Please refrain from drinking the water located within the wishing well, thank you.');}
4

4 に答える 4

2

可能性を配列に格納し、配列のランダムな要素を取得します。

デモ

function getRandomName()
{
    var names = [
        'John',
        'Sue',
        'Bob',
        'Sandeep'
    ];

    return names[Math.floor(Math.random() * names.length)];
}

document.write( getRandomName() );
于 2013-02-19T16:31:55.107 に答える
1

吐き出したいものはすべて配列に入れる必要があります。例えば:

var arr = [
    '<a href="http://www.facebook.com/abroheem.vonclinxenburg">Bro-Heem</a>',
    'I am too white for my own good',
    // other entries...
    'Please refrain from drinking the water located within the wishing well, thank you.'
];

次に、ロールはMath.random()配列の長さで乗算されます。

var roll = (Math.floor(Math.random()) * arr.length);

次に、適切な配列インデックスを使用して結果を書き込みます。この場合は、次を使用しますdocument.write(より良い方法がある場合もあります)。

document.write(arr[roll]);

これで、アレイに好きなだけ追加できます。

于 2013-02-19T16:31:39.027 に答える
0

配列を使用します:

var outputTextArr = ['text 1', 'text 2', 'text 3', 'text 4', 'more text', 'some text'];

次に、配列内のアイテムをランダムにターゲットにします。

function randomRange(from, to){
    return Math.floor(Math.random() * (to - from + 1) + from);
}

var outputText = outputTextArr[randomRange(0, outputTextArr.length - 1)];//var output text will have a random item
于 2013-02-19T16:31:28.447 に答える
0

このようなものが機能するはずです

var sentences = 
[
    "I am too white for my own good",
    "I love the way you paste those stickers.",
    "You probably were not just thinking about Wichita"
    // Add more sentences if you want to
];

var index = Math.floor(Math.random() * sentences.length);
alert(sentences[index]); // This will be your random value

CodePenの例

于 2013-02-19T16:32:08.947 に答える