Javascript 获取数组的最小数目,而不是使用Lodash求和

Javascript 获取数组的最小数目,而不是使用Lodash求和,javascript,json,lodash,Javascript,Json,Lodash,我试图使用Lodash从JSON中提取特定酒店预订当月每种房间类型的价格数据 在下面的例子中,我得到了每种房间类型的所有预订选项的平均价格(人数、有/没有早餐等)。相反,我只需要为每种房间类型获得最便宜的预订选项 我该怎么做?是否可以为每种房间类型仅获取最小的variantData数 我试图提取的JSON示例如下: 方法返回数组中的最小值。看 因此,在您的情况下,类似于: return { 'Lowest Price':_.min(prices); } 方法返回数组中的最小值。看 因此

我试图使用Lodash从JSON中提取特定酒店预订当月每种房间类型的价格数据

在下面的例子中,我得到了每种房间类型的所有预订选项的平均价格(人数、有/没有早餐等)。相反,我只需要为每种房间类型获得最便宜的预订选项

我该怎么做?是否可以为每种房间类型仅获取最小的variantData数

我试图提取的JSON示例如下:

方法返回数组中的最小值。看

因此,在您的情况下,类似于:

return {
    'Lowest Price':_.min(prices);
}
方法返回数组中的最小值。看

因此,在您的情况下,类似于:

return {
    'Lowest Price':_.min(prices);
}

有几种lodash方法可以帮助您编写更简单、更可读的代码:

  • \uuu.minBy()
    以获取具有最小值的对象
  • \uuu.sumBy()
    获取多个对象的总和,然后将总和除以数组的长度,得到平均值
  • ..flatMap()
    而不是
    ..flant(..map())
  • const prices=uu.map(月数,(月数,月数)=>{
    常量monthName='';//monthNames[monthNumber-1];
    常量类型=u.groupBy(u.flatMap(monthData,'Room_Type'),'Room_Title');
    const result=\映射(类型,(typeData,typeName)=>{
    常量变量=uu.flatMap(typeData,'variants');
    常量价格=uu.map(u.groupBy(变量,'Description'),(variantData,variantDiscr)=>{
    返回{
    “平均价格”:u.sumBy(variantData,'price')/variantData.length,
    “最低价格”:.minBy(variantData,“价格”)。价格
    };
    })
    返回{
    “类型”:类型名称,
    “变体”:价格,
    };
    });
    返回{
    “Month”:monthName,
    "价格":结果,,
    };
    });
    控制台.日志(价格)
    
    
    const months=[{“Hotel_Title”:“公寓\最新公寓”,“入住”:“2021-12-18”,“退房”:“2021-12-19”,“房间类型”:[{“房间名称”:“初级公寓”,“变体”:[{“价格”:425,“描述”:“,“入住”:2,“房间左”:2},{“价格”:429,“描述”:“入住”:3,“房间左”:2},{“房间名称”:公寓-底层”,“变体”:[{“价格”:425,“说明”:“入住率”:2,“左室”:2},{“价格”:429,“说明”:“入住率”:3,“左室”:2},{“房间名称”:“高级公寓”,“变体”:[{“价格”:425,“说明”:“入住率”:2,“左室”:4},{“价格”:429,“说明”:“入住率”:3,“左室”:4},{“房间名称”:“工作室舒适墙床”,“变体”:[{“价格”:“:425,“说明”:“占用率”:0,“房间左:8}],{“房间左:2}”,“房间左:2},{“价格”:853,“说明”:“占用率”:0,“房间左:8}],{“房间左:8}],{“房间左:8}],{“价格”:849,“说明”:“占用率”:2,“房间左:2},{“价格”:853,“房间左:2},{“说明”:“占用率”:3,“房间左:2},{“价格”:858,”说明”:“”,“占用率”:4,“房间左:2}]}],“url”:https://www.booking.com/hotel/cz/honest-apartments.en-gb.html?checkin_monthday=18&checkin_year_month=2021-12&结帐月日=19&结帐年月=2021-12&所选货币=EUR“},{“酒店名称”:“公寓\最新公寓”,“入住”:“2021-12-19”,“退房”:“2021-12-20”,“房间类型”:[{“房间名称”:“初级公寓”、“变体”:[{“价格”:425,“说明”:““占用率”:2,“房间左”:2},{“价格”:429,“说明”:““占用率”:3,“房间左”:2},{“房间名称”:“公寓-底层”、“变体”:[{“价格”:425,“说明”:“占用率”:2,“房间左”:2},{“价格”:429,“说明”:“占用率”:3,“房间左”:2},{“房间名称”:高级公寓,“变体”:[{“价格”:425,“说明”:“,”入住率:2,“房间左”:4},{“价格”:429,“说明”:“,”入住率:3,“房间左”:4},{“房间名称”:“工作室舒适墙床”,“变体”:[{“价格”:425,“说明”:“入住率”:0,“房间左”:8},{“房间名称”:“工作室舒适度”,“变体”:[{“价格”:425,“说明”:”入住率:0,“房间左:8}],{“房间名称”:“阁楼公寓”,“变体”:[{“价格”:849,“说明”:“入住率”:2,“房间左:2},{“价格”:853,“说明”:“入住率”:3,“房间左:2},{“价格”:858,“说明”:“入住率”:4,“房间左:2}],“url”:https://www.booking.com/hotel/cz/honest-apartments.en-gb.html?checkin_monthday=19&checkin_year_month=2021-12&结帐月日=20&结帐年月=2021-12&选定的货币=EUR“},{“酒店名称”:“公寓\最新公寓”,“入住”:“2021-12-20”,“退房”:“2021-12-21”,“房间类型”:[{“房间名称”:“初级公寓”,“变体”:[{“价格”:425,”描述:““入住率”:2,“左室”:2},{“价格”:429,“描述:““入住率”:3,“左室”:2},{“房间名称”:“公寓-底楼”,“变体”:[{“价格”:425,“描述:”,“入住率”:2,“左室”:2},{“价格”:429,“描述:““入住率”:3,“左室”:2},{“房间名称”:“高级公寓”,“变体”:[{“价格”:425,”描述:““入住率”:2,“左室”:4},{“价格”:429,“描述:““入住率”:3,“左室”:4},{“房间名称”:“工作室舒适墙床”,“变体:”[{“价格”:425,“描述:”,““入住率”:0,“左室”:8},{“房间名称”:“工作室舒适度”,“变体:{“价格”:425,“描述:”,“入住率”:0,“房间名称”:8},{“房间名称”:”阁楼公寓,“变体”:[{“价格”:849,“描述”:““入住率”:2,“房间左”:2},{“价格”:853,“描述”:“入住率”:3,“房间左”:2},{“价格”:858,“描述”:““入住率”:4,“房间左”:2}],“url”:https://www.booking.com/hotel/cz/honest-apartments.en-gb.html?checkin_monthday=20&checkin_year_month=2021-12&checkout\u monthday=21&checkout\u year\u month=2021-12&selected\u currency=EUR“},{“Hotel\u Title”:“公寓\n最新公寓”,“入住”:“2021-12-22”,“退房”:“2021-12-23”,“房间类型”:[{“房间名称”:“初级公寓”,“变体”:[{“价格”:425,”描述“,”入住率“:2,“房间左:2},{”价格“:429,“描述“:”Occ