私はオブジェクトを持っています
マーク: {
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 点が与えられます。823 ポイントを獲得するまで、1 点を獲得します。822 ポイントで => マーク 1.1
現在690点です。指定されたポイントを持つ次のオブジェクト プロパティの両方を知りたいです。この例では、下: 678: 1.9、上: 696: 1.8 です。
プロパティでフル ヒットを取得することを除いて、つまり 570 ポイント 3 つのプロパティを返す必要があります: ローワー、アッパー、フル ヒットです。
これらの両方のプロパティを取得するにはどうすればよいですか?
ありがとうございました
編集:
その問題に対する私の解決策は次のとおりです。
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});
壊す;
}else if(points == 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 キーと値のペアは、オブジェクトが ECMAScript の仕様に従って順不同であるとも述べたので、配列を作成して反復してスローすることにしました。
誰かがこれに対するより良い解決策を持っているなら、それはいいでしょう