javascript - Array in a loop -
creating small application generate random numbers. see fiddle here.
having issue function generates numbers. there 3 variables control output. count of numbers in set/sequence, number of sets, , number limit generated number, max number.
i created 2 loops generate numbers in sets. inner loop creates set of numbers (an array), , outer loop adds set setarr
, array.
so created 2 arrays. 1 hold current generated set temp
, , 1 hold whole sets, setsarr
.
inner loop creates set, , outer loop pushes created set setsarr
. , before executing again empty temp
array. goes on , on.
but doesn't work. must missing something. help?
function gen() { var cols = document.getelementbyid("cols").value; var sets = document.getelementbyid("sets").value; var max = document.getelementbyid("max").value; var setsarr = []; var temp = []; (var = 0; < sets; i++) { (var j = 0; j < cols; j++) { var num = math.floor(math.random() * max); temp.push(num); } setsarr.push(temp); temp.length = 0; } console.log(setsarr); }
when you're pushing temp
array setsarr
, not copied referenced. emptying empty array in setsarr
. when pushing same array, setsarr[0] == setsarr[1]
…
instead, create new array object on every iteration:
var setsarr = []; (var = 0; < sets; i++) { var temp = []; (var j = 0; j < cols; j++) { var num = math.floor(math.random() * max); temp.push(num); } setsarr.push(temp); }
Comments
Post a Comment