0
У меня вопрос, как я могу перетасовать этот массив внутри массива? пожалуйста, любезно помогите мне. я бы очень признателен, что вы помогаете парням, спасибо вам!Shuffle на массиве
Что я пытаюсь сделать, это перетасовать этот массив внутри массива.
// ______________________________________________Function to declare our var -> deck of cards
function getDeck() {
var deck = [
{suit: "H", face: "A"},
{suit: "H", face: "2"},
{suit: "H", face: "3"},
{suit: "H", face: "4"},
{suit: "H", face: "5"},
{suit: "H", face: "6"},
{suit: "H", face: "7"},
{suit: "H", face: "8"},
{suit: "H", face: "9"},
{suit: "H", face: "10"},
{suit: "H", face: "J"},
{suit: "H", face: "Q"},
{suit: "H", face: "K"},
{suit: "C", face: "A"},
{suit: "C", face: "2"},
{suit: "C", face: "3"},
{suit: "C", face: "4"},
{suit: "C", face: "5"},
{suit: "C", face: "6"},
{suit: "C", face: "7"},
{suit: "C", face: "8"},
{suit: "C", face: "9"},
{suit: "C", face: "10"},
{suit: "C", face: "J"},
{suit: "C", face: "Q"},
{suit: "C", face: "K"},
{suit: "D", face: "A"},
{suit: "D", face: "2"},
{suit: "D", face: "3"},
{suit: "D", face: "4"},
{suit: "D", face: "5"},
{suit: "D", face: "6"},
{suit: "D", face: "7"},
{suit: "D", face: "8"},
{suit: "D", face: "9"},
{suit: "D", face: "10"},
{suit: "D", face: "J"},
{suit: "D", face: "Q"},
{suit: "D", face: "K"},
{suit: "S", face: "A"},
{suit: "S", face: "2"},
{suit: "S", face: "3"},
{suit: "S", face: "4"},
{suit: "S", face: "5"},
{suit: "S", face: "6"},
{suit: "S", face: "7"},
{suit: "S", face: "8"},
{suit: "S", face: "9"},
{suit: "S", face: "10"},
{suit: "S", face: "J"},
{suit: "S", face: "Q"},
{suit: "S", face: "K"},
];
return deck;
}
// ______________________________________________Function to shuffle cards
function shuffle(o) { // o is passed-in array
for (var j, x, i = o.length; i; j = parseInt(Math.random() * i, 10), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
Вот и другой код, и я думаю, что здесь проблема или нет? :
// ______________________________________________Function to retrieve our deck of cards & save into localStorage
function getShoe(decks) {
var shoe = [];
var deck = getDeck();
this.decks = decks;
for (z=1;z<=decks;z++) {
shoe.push(deck);
}
shoe = shuffle(shoe);
return shoe;
localStorage.setItem('shoe', JSON.stringify(shoe));
}
Deck еще не перемешиваются. – user2910182
Интересно. Вы получаете какие-либо ошибки или ничего не происходит? – lincb
Это плохой способ перетасовать. Мой пост здесь охватывает эти понятия более подробно: http://stackoverflow.com/questions/557911/shuffle-using-icomparer В двух словах: он подвержен сбою, поскольку данные три элемента (a, b и c) в большем список, в разных точках во время тасования он может сравниться так, что a> b, b> c и c> a. Даже если это не так, этот метод склонен к предвзятости. –