1

我想要的是,生成一个显示在 ah 标签中的随机值,并在另一个标签中显示相对于随机值的好值。

var first = ['1+2', '10+20', '100+200'];
var second = ['3', '30', '300'];

var first_value = first[Math.floor(Math.random()*first.length)];
var second_value = second[Math.floor(Math.random()*second.length)];

document.getElementById('first_value').innerHTML = first_value;
document.getElementById('second_value').innerHTML = second_value;

目前,一切都是随机生成的,生成的 2 个值之间没有关系。

如果随机选择“10+20”,我想在第二个html标签中显示“30”。

4

3 回答 3

4

只需存储两个数组的随机索引。

var index = Math.floor(Math.random() * first.length); // assuming same length

document.getElementById('first_value').innerHTML = first[index];
document.getElementById('second_value').innerHTML = second[index];

另一种方法是将同一组的值存储在一个数组中,并将逻辑组保持在一起,而不是使用两个不同的数组。

var data = [
        ['1+2', 3],
        ['10+20', 30],
        ['100+200', '300']
    ];
    index = Math.floor(Math.random() * data.length);

document.getElementById('first_value').innerHTML = data[index][0];
document.getElementById('second_value').innerHTML = data[index][1];
于 2019-05-27T14:56:38.490 回答
2

为什么不只为第一个数组获取一个随机数,如下所示。

var first = ['1+2', '10+20', '100+200'];
var index = Math.floor(Math.random() * first.length);

然后根据你得到的结果,用下面的评估方法计算实际结果

document.getElementById('first_value').innerHTML = eval(first[index])

然后你不需要第二个数组

如果第一个值是总和,第二个值是结果,你可以这样做:

document.getElementById('first_value').innerHTML = first[index]
document.getElementById('second_value').innerHTML = eval(first[index])
于 2019-05-27T15:09:09.477 回答
1

仅生成一个随机数并将其用作两个数组的索引。
无需生成第二个随机值。两个数组只需要相同的长度。

var first = ['1+2', '10+20', '100+200'];
var second = ['3', '30', '300'];

var index = Math.floor(Math.random()*first.length);
var first_value = first[index];
var second_value = second[index];

document.getElementById('first_value').innerHTML = first_value;
document.getElementById('second_value').innerHTML = second_value;
<div id="first_value"></div>
<div id="second_value"></div>

于 2019-05-27T14:58:23.307 回答