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?
asked Oct 21, 2009 at 12:52
streetparade
33.1k39 gold badges106 silver badges123 bronze badges
-
1The script is doing what you want it to do. What do you want to create? A 1D array with all the checked items?C. Ross– C. Ross2009年10月21日 12:54:55 +00:00Commented Oct 21, 2009 at 12:54
3 Answers 3
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);
}
}
}
answered Oct 21, 2009 at 12:58
Greg
323k55 gold badges378 silver badges338 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
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 );
}
}
}
answered Oct 21, 2009 at 12:56
rahul
188k50 gold badges240 silver badges266 bronze badges
Comments
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);
}
}
}
answered Oct 21, 2009 at 13:04
Andreas Köberle
112k58 gold badges281 silver badges308 bronze badges
Comments
lang-js