0

範囲で現在のjqueryuiスライダーを使用しているim:http: //jqueryui.com/slider/#range

およびunderscore.jshttp ://underscorejs.org/

したがって、ユーザーが関数にスライドするのを停止した後、私が送信する最小値と最大値を指定します。

currentSlide:function(){
    $('#slider').slider({
        range: true,
        min: min,
        max: max,
        values: [ vmin, vmax ],
        stop:$.proxy(this.afterSlide,this)
    });
},

afterSlide:function(event, ui) {
    console.log(ui.values[0]);
},

afterSlide関数で最小/最大を正しく取得しますが、underscore.jsを使用して、この最小で始まり最大で終わる価格のすべてのエントリを取得する方法がわかりません。

Examplearray:

var sample = {
    "response": {
        "things": [{
            "index": 0,
            "price": "10"
        },{
            "index": 1,
            "price": "15"
        },{
            "index": 2,
            "price": "60"
        },{
            "index": 3,
            "price": "10"
        },{
            "index": 4,
            "price": "100"
        }
        ]
    }
};

スライダーを使用した後、最小/最大[12,61]があるので、12〜61ドルの価格で始まるすべてのエントリのみを表示したい

var result = _.find(sample.response.things, min/max);??

_.range()関数を正しく理解していないため、必要に応じて使用したり、.where / .find()関数を使用して正しいステートメントを作成したりできません。

4

1 に答える 1

2

最大値と最小値を取得するだけです。これはかなり些細なことのように思われるので、オブジェクトを繰り返して、関連する値が範囲内にあるかどうかを確認し、新しいオブジェクトに追加します。実際には_underscoreは必要ありません。これ:

afterSlide:function(event, ui) {
   var min = ui.values[0],
       max = ui.values[1],
     items = {};

    $.each(sample.response.things[0], function(key, val) {
        if (val.price > min && val.price < max) {
            items[val.index] = val.price;
        }
    })
},
于 2013-02-11T17:23:23.130 に答える