我有一个对象
分数: { 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 的规范,对象是无序的,我决定创建一个数组并迭代抛出它们。
如果有人对此有更好的解决方案会很好