![](/img/trans.png)
[英]Having Issue on Pushing Strings Between Parantsis Into Array of Arrays
[英]Having Issue On Pushing Array Into Two Dimension Array
您能否看一下這段代碼,讓我知道為什么storage.push(players)
而不是將新的數組/ players
器集添加到storage
中,而是將它們與先前添加的數組合並?
從技術上講,我在這里所期望的是得到這樣的東西
[
[2,52,35,16,18,46],
[18,44,66,25,78,26]
]
但是我現在得到的只是存儲中的一個數組,例如
[
[2,52,35,16,18,46,18,44,66,25,78,26]
]
var storage = []; var players = []; function createplayers(arr) { for (let i = 0; i < 8; i++) { let a = true, n; while (a) { n = Math.floor(Math.random() * 100) + 1; a = arr.includes(n); } arr.push(n); } } var x = 3; var interval = 1000; for (var i = 0; i < x; i++) { setTimeout(function() { createplayers(players); storage.push(players) console.log(players) console.log(storage) }, i * interval) }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
你一直只有一個players
陣列。 將數組創建移動到createplayers()
。
var storage = []; function createplayers() { var arr = []; for (let i = 0; i < 8; i++) { let a = true, n; while (a) { n = Math.floor(Math.random() * 100) + 1; a = arr.includes(n); } arr.push(n); } return arr; } var x = 3; var interval = 1000; for (var i = 0; i < x; i++) { setTimeout(function() { var players = createplayers(); storage.push(players) console.log(players) console.log(storage) }, i * interval) }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
這個問題與jQuery
無關
每次添加到存儲時,您都必須清除播放器陣列。
這是解決方案
var storage = [];
var players = [];
function createplayers(arr) {
for (let i = 0; i < 8; i++) {
let a = true,
n;
while (a) {
n = Math.floor(Math.random() * 100) + 1;
a = arr.includes(n);
}
arr.push(n);
}
}
var x = 3;
var interval = 1000;
for (var i = 0; i < x; i++) {
setTimeout(function() {
createplayers(players);
storage.push(players)
console.log(players)
//Notice this line
players=[];
console.log(storage)
}, i * interval)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.