0

我使用当前 jquery ui 滑块的范围:http: //jqueryui.com/slider/#range

和 underscore.js http://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 来获取所有价格从这个最小值开始到最大值结束的条目。

示例数组:

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

在我使用 Slider 之后,我得到了 min/max [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 回答