0

私は 2 つの div を持っており#col1#col2そこに果物の名前を含む div を生成する必要があります。

これまでのところ、私は持っています:

var fruitArray = ['apples','banana','orange','grapes'];
for (fruit in fruitArray) {
    $('<div class="'+fruitArray[fruit]+'"></div>').appendTo('#col1').doSomething(); 

    $('<div id="'+fruitArray[fruit]+'"></div>').appendTo('#col2').doSomething(); 
}

次のようになります。

<div id="#col1">
    <div class="apples"></div>
    <div class="banana"></div>
    <div class="orange"></div>
    <div class="grapes"></div>
</div>
<div id="#col2">
    <div id="apples"></div>
    <div id="banana"></div>
    <div id="orange"></div>
    <div id="grapes"></div>
</div>

次のように配列をランダム化するにはどうすればよいですか。

<div id="#col1">
    <div class="orange"></div>
    <div class="apples"></div>
    <div class="orange"></div>
    <div class="grapes"></div>
</div>
<div id="#col2">
    <div id="grapes"></div>
    <div id="orange"></div>
    <div id="apples"></div>
    <div id="banana"></div>
</div>
4

1 に答える 1

0

簡単なshuffle拡張:

Array.prototype.shuffle = function() {
    var shuffledArray = [];
    while (this.length) {
        shuffledArray.push(this.splice(Math.random() * this.length, 1)[0]);
    }
    while (shuffledArray.length) {
        this.push(shuffledArray.pop());
    }
    return this;
}

のように使う

var fruitArray = ['apples','banana','orange','grapes'].shuffle();
for (var i = 0; i < fruitArray.length; i++) {            
    $('<div class="'+fruitArray[i]+'"></div>').appendTo('#col1').doSomething(); 

    $('<div id="'+fruitArray[i]+'"></div>').appendTo('#col2').doSomething(); 
}
于 2012-05-22T10:59:05.477 に答える