Я пытаюсь использовать Javascript для создания массива, взять два уникальных случайных отрисовки из массива, а затем назначить нарисованные значения в таблицу HTML. Мой подход состоял в том, чтобы создать массив, взять случайный случай, создать новый массив без нарисованного значения, а затем взять случайный ничья из нового массива как способ взять два случайных ничьих без замены.
Я привел минимальный пример того, что я сделал для достижения этой цели, но он не работает. Мне бы хотелось, чтобы значения, назначенные таблице HTML, в конечном итоге представляли собой два уникальных значения (например, «a», «b») из массива foo.
Разве это не работает, потому что значение == bar_a ниже не удалит значение, присвоенное массиву bar_a, потому что bar_a является массивом, а не значением массива?
Хотя в этом посте рассматривал рисование без замены, в нем не приводится пример использования строк и не объясняется, как сохранить оба числа, и неясно, почему они используют splice()
вместо * 1012. *
// Define array containing the set of values we'll randomly assign to A or B
var foo = ["a", "b", "c", "d"];
// Initialize variables to hold the value for A and B
var bar_a= [""];
var bar_b= [""];
// Randomly draw from foo, save for A
bar_a =foo[Math.floor(Math.random()*foo.length)];
// Remove the drawn value from the array, create new array
var foo_filtered = array.filter(function(value, index, arr){
return value == bar_a;
});
// Randomly draw from foo_filtered, save for B
bar_b = foo_filtered[Math.floor(Math.random()*foo_filtered.length)];
// Assign attributes and values to their placeholders (a1, b1) in a HTML table
document.getElementById("a1").innerHTML = bar_a;
document.getElementById("b1").innerHTML = bar_b;