我有一个对象
分数: {
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
}
这个对象是一个标记列表。如果您获得 900 分,您将获得 1.0 分。你得到标记 1 直到你得到 823 分。在 822 点上 => 标记 1.1
现在我有690分。我想知道给定点的下一个对象属性。在此示例中:下限:678:1.9 和上限:696:1.8。
除了我在属性上得到一个完整的命中,即 570 点我想要返回三个属性:下层、上层和完整的命中。
我怎样才能得到这两个属性?
谢谢
编辑:
我对这个问题的解决方案是:
var a = new Array(),
r = 新数组(),
点= 300;
for(this.options.marks 中的 var 键){
a.push({'points':key, 'mark': this.options.marks[key]});
}
a.reverse();
for (var i=0; ia[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});
休息;
}否则如果(点== a[i].points){
if(typeof a[i-1] != '未定义'){
r.push({'points':a[i-1].points, 'mark': a[i-1].mark});
}别的{
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] != '未定义'){
r.push({'points':a[i+1].points, 'mark':a[i+1].mark});
}别的{
r.push({'points':a[i].points, 'mark':a[i].mark});
}
休息;
}
}
由于 MrP 和Get next key-value pair in an object还表示,根据 ECMAScript 的规范,对象是无序的,我决定创建一个数组并迭代抛出它们。
如果有人对此有更好的解决方案会很好