I have array of objects resultArray
:
JavaScript
x
2
1
resultArray= Array[object,object, .]
2
My object looks like
JavaScript
1
2
1
color:"value" ,diams:Array[n]
2
where n
is number of elements inside the diams array.
Assuming
JavaScript
1
2
1
resultArray.diams = "0","3","5"
2
"0","3","5"
should be index to access the global array diams
it looks like
JavaScript
1
2
1
var diams = [60,65,68,69,70,75,76,80,81,82,85,90];
2
I am trying to display all the selected information by user from this object. This is my code:
JavaScript
1
5
1
$.each(resultArray,function(key,value){
2
$("#renderedOBJ").append("<p id='p"+key+"'> color: "
3
+resultArray[key].color+"; Diameter :<span id='s"+key+"'>"
4
+resultArray[key].diams+"</span> </P>");
5
I got this:
JavaScript
1
2
1
color: purple; Diameter :0,2,3
2
but I wanted:
JavaScript
1
2
1
color: purple; Diameter :60,68,69
2
Thats why I tried to access the global array diams like this:
JavaScript
1
6
1
$.each(resultArray,function(key,value){
2
$("#renderedOBJ").append("<p id='p"+key+"'> Color: "+resultArray[key].color+
3
"; Diameter: <span id='s"+key+"'>"
4
+diams[resultArray[key].diams[key]]+"</span> </P>");
5
})
6
But I got only the first value:
JavaScript
1
2
1
Color: pink; Diameter :60
2
Could you tell me what am I doing wrong?
Advertisement
Answer
JavaScript
1
9
1
var diams = [60,65,68,69,70,75,76,80,81,82,85,90];
2
resultArray= [{color:"purple",diams:["0","2","3"]},
3
{color:"yellow",diams:["0","3","5"]}
4
];
5
$.each(resultArray,function(key,value){
6
$("#renderedOBJ").append("<p id='p"+key+"'> Color: "+resultArray[key].color+
7
"; Diameter: <span id='s"+key+"'>"
8
+resultArray[key].diams.map(function(a) {return diams[parseInt(a)]}).join(', ')+"</span> </P>");
9
})
JavaScript
1
2
1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
2
<div id="renderedOBJ"></div>