私は衣装のランダマイザーを作っています。しかし、白いシャツに白いネクタイのような奇妙な服を着けないように、いくつかのルールを追加したいと思います。または、グラフィックティーのネクタイ。またはシャツの上にタートルネックを身に着けている。電卓にカスタムルールを追加するには?
これはこれまでのところ、コードです:
var shirts = ["White", "navy", "light blue", "gray"];
var pants = ["black", "navy", "gray"];
var ties = ["red and blue squares", "purple", "white", "red"];
var random_shirt = shirts[Math.floor(Math.random()*shirts.length)];
var random_pants = pants[Math.floor(Math.random()*pants.length)];
var random_tie = ties[Math.floor(Math.random()*ties.length)];
document.write(" shirt: " + random_shirt + " pants: " + random_pants + " tie: " + random_tie);
私がいた場合、それがで行うのを知っていると他の人の、私は方法がわかりません。
私のJSの文盲を許してください。私はそれを学んだが、実際にそれを使ったことはありません今まで。
あなたは
var random_shirt = [random logic];
/*
This will iterate over your pants array, returning a filtered array
with containing the items that returned true
item: the actual item
index: index of the actual item
array: original array
*/
filtered_pants = pants.filter(function(item, index, array) {
if (item == random_shirt) {
// This item won't be in the filtered array
return false;
}
if ([another custom rule]) {
return false;
}
/*
After passing all the rules return true to include this item in
the filtered array
*/
return true;
});
// Now shuffle over the filtered array
var random_pants = filtered_pants[Math.floor(Math.random()*pants.length)];
は、それからちょうどそれを繰り返すランダムシャツの結果に基づいて、ズボンの配列をフィルタリングすることができます。
おかげ
は
だけFYI:あなたはここで特定のユーザーに叫ぶことはできません。 @記法は、誰かが最初にこの特定の質問または回答にコメントしたり掲示したり、回答している場合にのみ機能します。誰かが別の質問(あなたや他の誰か)にコメントしたり掲示したりした場合、それは機能しません。 –