让JavaScript加载更多数字?

时间:2017-12-14 19:52:53

标签: javascript arrays math mathematical-optimization

我有一个简单的JavaScript代码,它生成一个介于0到10之间的所有数字的数组,然后从0到10再生。例如:

1 + 2 =
4 + 5 =
3 + 8 =
4 + 5 =

随机全部121个数字。 检查代码以便更好地理解。 希望这部分有用。

代码:

 arr = [];
 var lastArr = [];



while(lastArr.length<121){
    arr.push('<br>'+Math.round(Math.random() * 10)+'+'+Math.round(Math.random() * 10)+'=');
lastArr=removeDuplicates(arr);
  
}
  
document.getElementById('plus').innerHTML=(lastArr.join(' '));


 
function removeDuplicates(arr){
    let unique_array = []
    for(let i = 0;i < arr.length; i++){
        if(unique_array.indexOf(arr[i]) == -1){
            unique_array.push(arr[i])
        }
    }
    return unique_array
}
<html>
<p id='plus'></p>
</html>

问题:

我想用数字做同样的事情为100.下一步如果完成则是1000和下一步,但让我们回到问题。页面停止响应(可能是无限循环),没有显示任何内容。

以下是有问题的代码:

//DON'T RUN! PAGE CRASHES
arr = [];
 var lastArr = [];

while(lastArr.length<(101*101)){
    arr.push('<br>'+Math.round(Math.random() * 10)+'+'+Math.round(Math.random() * 10)+'=');
lastArr=removeDuplicates(arr);

}

document.getElementById('plus').innerHTML=(lastArr.join(' '));

function removeDuplicates(arr){
    let unique_array = []
    for(let i = 0;i < arr.length; i++){
        if(unique_array.indexOf(arr[i]) == -1){
            unique_array.push(arr[i])
        }
    }
    return unique_array
}

//HTML

<p id='plus'></p>

第二个问题:

我想通过复制数学结果来清理数组:

e.x。

1 + 0 =

0 + 1 =

e.x.2

2 + 1 =

1 + 2 =

在数组中应该只留下第一个生成的(无论哪个)。

1 个答案:

答案 0 :(得分:1)

问题在于您将while循环更改为lastArr.length<(101*101),其运行次数超过10,000次。结果你的代码崩溃了。

要使用最多1000的数字,您只需将两个(Math.random() * 10)更改为(Math.random() * 100),如以下示例所示:

arr = [];
var lastArr = [];

while (lastArr.length < (121)) {
  arr.push('<br>' + Math.round(Math.random() * 100) + '+' + Math.round(Math.random() * 100) + '=');
  lastArr = removeDuplicates(arr);
}

document.getElementById('plus').innerHTML = (lastArr.join(' '));

function removeDuplicates(arr) {
  let unique_array = []
  for (let i = 0; i < arr.length; i++) {
    if (unique_array.indexOf(arr[i]) == -1) {
      unique_array.push(arr[i])
    }
  }
  return unique_array
}
<p id='plus'></p>

希望这有帮助! :)