Javascript 使用lodash从json数组查询结果

Javascript 使用lodash从json数组查询结果,javascript,arrays,json,lodash,Javascript,Arrays,Json,Lodash,我的json数组是这样的 [ {"hoteldetail":{"hotelid":"00007111","hotelname":"hjghghg","minrate":"500"}, {"hoteldetail"{"hotelid":"00007111","hotelname":"hjghghg","minrate":"1200"}, {"hoteldetail":{"hotelid":"00007111","hotelname":

我的json数组是这样的

        [
        {"hoteldetail":{"hotelid":"00007111","hotelname":"hjghghg","minrate":"500"},
        {"hoteldetail"{"hotelid":"00007111","hotelname":"hjghghg","minrate":"1200"},
        {"hoteldetail":{"hotelid":"00007111","hotelname":"hjghghg","minrate":"7000"},
        {"hoteldetail":{"hotelid":"00007111","hotelname":"hjghghg","minrate":"8000"}

        ]
从这里,我想获取
minrate

例如:如果
minrate
范围为(5007500),它将从只包含上述范围内的minrate的json数组返回项目


因此,如何使用
lodash
获得输出?

简单的实现是

_.filter(arr, item => _.inRange(item.hoteldetail.minrate, 500, 7501))
它的工作原理与读取内容完全相同:筛选属性
hoteldetail.minrate
在指定范围内的项的数组。但是,较新的lodash有一个非常好的函数,名为
。.iteratee
,它允许您提供过滤器速记,例如:

_.filter(arr, 'minrate in range 500, 7500')
下面是实现

_.iteratee = _.wrap(_.iteratee, function(callback, func) {
  var p = /minrate in range (\d+), (\d+)/g.exec(func);
  return !p ? callback(func) : function(object) {
    return object.hoteldetail.minrate >= p[1] && object.hoteldetail.minrate <= p[2];
  };
});
并将其用作
\过滤器(arr,'范围1,5'中的房间数)


Doc:

简单的实现是

_.filter(arr, item => _.inRange(item.hoteldetail.minrate, 500, 7501))
它的工作原理与读取内容完全相同:筛选属性
hoteldetail.minrate
在指定范围内的项的数组。但是,较新的lodash有一个非常好的函数,名为
。.iteratee
,它允许您提供过滤器速记,例如:

_.filter(arr, 'minrate in range 500, 7500')
下面是实现

_.iteratee = _.wrap(_.iteratee, function(callback, func) {
  var p = /minrate in range (\d+), (\d+)/g.exec(func);
  return !p ? callback(func) : function(object) {
    return object.hoteldetail.minrate >= p[1] && object.hoteldetail.minrate <= p[2];
  };
});
并将其用作
\过滤器(arr,'范围1,5'中的房间数)


Doc:

\uu.filter(jsonArray,函数(项){return item.minrate>=500&&item.minrate你能解释一下吗?
\uu.filter(jsonArray,函数(项){return item.minrate>=500&&item.minrate您能解释一下吗?获取此错误
未捕获类型错误:\ inRange不是一个函数
@shammon您的lodash版本是什么?
\ inRange
是非常新的。但是,您可以使用自定义函数轻松地更改它…lodash版本4.3.0是的,我确信当您您只需执行
.inRange(2,1,3)
?获取此错误
未捕获类型错误:\uRange不是函数
@shammon您的lodash版本是什么?
.inRange
是非常新的。但是,您可以使用自定义函数轻松更改它…lodash版本4.3.0是的,我确信当您执行
.inRange>时,输出是什么(2,1,3)