0

私はオブジェクトを持っています

マーク: {
                    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 の仕様に従って順不同であるとも述べたので、配列を作成して反復してスローすることにしました。

誰かがこれに対するより良い解決策を持っているなら、それはいいでしょう

4

1 に答える 1