Reputation: 32878
Hello i want to create a array in java script withing 2 for loops
var i;
var a;
var total = document.getElementsByName('qm[7]')
var creativity = document.getElementsByName('qm[0]');
var design = document.getElementsByName('qm[1]');
var text = document.getElementsByName('qm[3]');
var motivation = document.getElementsByName('qm[5]');
var depth = document.getElementsByName('qm[6]');
var usefulness = document.getElementsByName('qm[8]');
var research = document.getElementsByName('qm[9]');
ratingArray = new Array(total,creativity,design,text,motivation,depth,usefulness,research);
for(i=0; i < ratingArray.length;i++)
{
for(a=0; a < ratingArray[i].length;a++)
{
if(ratingArray[i][a].checked == true)
{
rateArray = new Array(ratingArray[i][a].value);
}
}
}
and if i return rateArray it just gives the first element any idea?
Upvotes: 2
Views: 22249
Reputation: 110892
In this line you create an new Array every time:
rateArray = new Array(ratingArray[i][a].value);
So you have to push the elements in to the array instead of creating a new one every time thats also delete the last version.
var rateArray =[]
for(i=0; i < ratingArray.length;i++)
{
for(a=0; a < ratingArray[i].length;a++)
{
if(ratingArray[i][a].checked)
{
rateArray.push(ratingArray[i][a].value);
}
}
}
Upvotes: 0
Reputation: 321588
You're overwriting rateArray each time you find a checked element - I suspect you meant to append it instead:
var ratingArray = new Array(total,creativity,design,text,motivation,depth,usefulness,research);
var rateArray = new Array();
for(i=0; i < ratingArray.length;i++)
{
for(a=0; a < ratingArray[i].length;a++)
{
if(ratingArray[i][a].checked == true)
{
rateArray.push(ratingArray[i][a].value);
}
}
}
Upvotes: 8
Reputation: 187030
Create a new array and push the selected values to the new array.
A detailed description of array functions
Manipulating JavaScript Arrays
var ratingArray = new Array(total,creativity,design,text,motivation,depth,usefulness,research);
var selectedValArray = [];
for(i=0; i < ratingArray.length;i++)
{
for(a=0; a < ratingArray[i].length;a++)
{
if(ratingArray[i][a].checked == true)
{
selectedValArray.push ( ratingArray[i][a].value );
}
}
}
Upvotes: 2