Я генерирующий элементы, которые имеют случайные данные атрибуты, как так:Создания набора случайных элементов с последующим поколением «один на один»
generateCards : function(n)
{
var actions = ['press', 'blue-right', 'blue-left', 'red-right', 'red-left'],
i = n,
ran,
actions_cpy = actions.slice();
for (; i--;) {
ran = (Math.random() * actions_cpy.length)|0;
$('#container-game-mobile').prepend(
$('<div>', {
// remove and return a random string from the array
'class': 'game-card-mobile',
'data-action': actions_cpy.splice(ran, 1)[0]
})
);
// load the array backup with values when it is empty
if (actions_cpy.length === 0) {
actions_cpy = actions.slice();
}
}
}
Функция работает в пути, где есть более или менее равные количества каждый атрибут данных из массива действий. Я изначально генерирую 10 элементов, поэтому n = 10
из-за характера приложения каждый раз, когда действие выполняется на .game-card-mobile
. Я уничтожаю его и вам нужно сгенерировать новый, так что вызывайте функцию выше, но теперь с n = 1
. Проблема здесь в том, что мне почему-то нужно называть элементы, которые все равно будут отличаться, поэтому предотвратите появление «синего права» снова и снова.
Выполняется ли '' '' 'случайное число, когда' n = 1'? – guest271314
@ guest271314 yes – Ilja
'actions_cpy.splice (ran, 1) [0]' не возвращать случайный элемент из 'actions_cpy', а' ran' возвращать случайное число и 'n = 1'? – guest271314