i have an Object
marks: {
900: 1.0,
822: 1.1,
804: 1.2,
786: 1.3,
768: 1.4,
750: 1.5,
732: 1.6,
714: 1.7,
696: 1.8,
678: 1.9,
660: 2.0,
588: 2.4,
570: 2.5,
552: 2.6,
534: 2.7,
516: 2.8,
498: 2.9,
480: 3.0,
462: 3.1,
444: 3.2,
426: 3.3,
408: 3.4,
390: 3.5,
372: 3.6,
354: 3.7,
336: 3.8,
318: 3.9,
300: 4.0
}
This object is a mark-list. if you get 900 points you get the mark 1.0. you get the mark 1 until you get 823 points. on 822 points => mark 1.1
now i have 690 points. i want the know the both next object properties with the given points. in this example: the lower: 678: 1.9 and the upper 696: 1.8.
except i get a full hit on the propertie i.e. 570 points i want have three properties returned: the lower, the upper and the full hit.
how can i get these both properties?
Thank you
EDIT:
My solution for that problem is:
var a = new Array(),
r = new Array(),
points = 300;
for(var key in this.options.marks){
a.push({'points':key, 'mark': this.options.marks[key]});
}
a.reverse();
for (var i=0; i a[i].points) {
r.push({'points':a[(i-1)].points, 'mark': a[(i-1)].mark});
r.push({'points':points, 'mark': a[(i-1)].mark});
r.push({'points':a[i].points, 'mark': a[i].mark});
break;
}else if(points == a[i].points) {
if(typeof a[i-1] != 'undefined'){
r.push({'points':a[i-1].points, 'mark': a[i-1].mark});
}else{
r.push({'points':a[i].points, 'mark': a[i].mark});
}
r.push({'points':a[i].points, 'mark': a[i].mark});
if(typeof a[i+1] != 'undefined'){
r.push({'points':a[i+1].points, 'mark': a[i+1].mark});
}else{
r.push({'points':a[i].points, 'mark': a[i].mark});
}
break;
}
}
as MrP and Get next key-value pair in an object also said that objects are unordered as per ECMAScript's spec, i decided to make an array and iterate throw them.
if anyone has a better solution for this would be nice