2016-12-15 8 views
0

まずランダム配列(ロード時)を選択し、次にこの選択配列から要素を選択できるかどうかを調べようとしています。だから、例えば私が持っている:ランダム配列を選択してからこの配列から要素を選択してください

var colorsOne = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsTwo = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsThree = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsFour = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsFive = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsSix = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsSeven = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsEight = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsNine = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsTen = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsEleven = ["#CCCCCC","#333333","#990099","#990099"]; 
    var colorsTwelve = ["#CCCCCC","#333333","#990099","#990099"]; 

12アレイ(それぞれが最終的に異なる16進コードが移入される)、私が最初にこの配列から、これらの配列のいずれかを選択し、(ランダムに)1つのヘクスコードする必要があります。

var rand = Math.floor(Math.random() * 4);    
$('.header-wrap').css("background-color", colorsEight[rand]); 

これはcoloursEight配列からランダムな要素がかかりますが、私はそれをプログラムしなければならなかった、私はランダムに最初の配列を選択し、この配列から要素を選択する必要があります。

これについてのご意見は大変ありがとうございます。

+0

これらを2D配列構造に編成できますか? –

+0

オブジェクトまたは配列を使用して、別々の識別子の代わりに12個の配列を格納します。 – guest271314

答えて

2

答えは質問にかなり内在しています。何らかの理由であなたがそれらの個別の配列変数が必要な場合は

var colors = [ 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"] 
]; 

var array = colors[Math.floor(Math.random() * colors.length)]; 
var color = array[Math.floor(Math.random() * array.length)]; 
$('.header-wrap').css("background-color", color); 

が、あなたはまだそれらを一緒に集めることができます:

var colorsOne = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsTwo = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsThree = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsFour = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsFive = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsSix = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsSeven = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsEight = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsNine = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsTen = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsEleven = ["#CCCCCC","#333333","#990099","#990099"]; 
var colorsTwelve = ["#CCCCCC","#333333","#990099","#990099"] 
var colors = [ 
    colorsOne, 
    colorsTwo, 
    colorsThree, 
    colorsFour, 
    colorsFive, 
    colorsSix, 
    colorsSeven, 
    colorsEight, 
    colorsNine, 
    colorsTen, 
    colorsEleven, 
    colorsTwelve 
]; 

var array = colors[Math.floor(Math.random() * colors.length)]; 
var color = array[Math.floor(Math.random() * array.length)]; 
$('.header-wrap').css("background-color", color); 
:-)そして、あなたがやっている同じことを行う、配列に配列を入れて
1

すべての既存の配列から2次元配列を生成するだけで済みます。

次に、super_arrayのランダムインデックスを取得するだけで、あなたの心の欲望に使用できる単一の配列が得られます。

var rand_x = Math.floor(Math.random() * 4); 
var rand_y = Math.floor(Math.random() * 4);    
$('.header-wrap').css("background-color", super_array[rand_x][rand_y]); 
0
function randomArrVal(arr) { 
return arr[Math.floor(arr.length * Math.random())]; 
} 
var array2D = [ 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"], 
    ["#CCCCCC","#333333","#990099","#990099"] 
]; 

$('.header-wrap').css("background-color", randomArrVal(randomArrVal(array2D))); 
0

名前付き配列を作成する理由はないようです。あなたは多次元配列を作成し、それを消したい色を得ることができます。以下のスニペットはそれを示しています....

// BUNDLE ALL THE INDIVIDUAL ARRAY OF COLORS 
    // INTO ONE SINGLE ARRAY THUS CREATING A MULTI-DIMENSIONAL ARRAY. 
    var arrHexColors = [ 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"], 
     ["#CCCCCC","#333333","#990099","#990099"] 
    ]; 

    // IF NECESSARY (SHOULD THE KEYS BE IMPORTANT TO YOU); 
    // CREATE AN ARRAY TO HOLD THE KEYS TO THE INDIVIDUAL ARRAY... 
    // THE IDEA HERE IS TO CREATE A PARALLEL ARRAY, WITH THE KEYS HERE 
    // CORRESPONDING TO THE KEYS REPRESENTING ITS CONTENT IN THE MULTI-DIMENSIONAL ARRAY. 
    var arrColorKeys = [ 
     'colorsOne', 
     'colorsTwo', 
     'colorsThree', 
     'colorsFour', 
     'colorsFive', 
     'colorsSix', 
     'colorsSeven', 
     'colorsEight', 
     'colorsNine', 
     'colorsTen', 
     'colorsEleven', 
     'colorsTwelve' 
    ]; 

    // GENERATE A RANDOM NUMBER THAT SHOULD BE 
    // "ONE" LESS THAN THE LENGTH OF THE MULTI-DIMENSIONAL ARRAY 
    var arrRandomColor = arrHexColors[ Math.floor(Math.random() * arrHexColors.length) ]; 

    // DO THE SAME FOR THE COLOR KEYS ARRAY - IF NEEDED.... 
    var arrRandomKey = arrRandomColor[ Math.floor(Math.random() * arrRandomColor.length) ]; 

    // USING THE GENERATED RANDOM NUMBER PICK THE ARRAY 
    // CORRESPONDING TO THAT KEY 
    var randomColor  = arrRandomColor[ Math.floor(Math.random() * arrRandomColor.length) ]; 

    $('.header-wrap').css("background-color", randomColor); 

    console.log(randomColor); 
関連する問題