Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript loDash——有没有简化可读性的方法_Javascript_Lodash - Fatal编程技术网

Javascript loDash——有没有简化可读性的方法

Javascript loDash——有没有简化可读性的方法,javascript,lodash,Javascript,Lodash,我已经解决了逻辑问题,但希望找到一种更可读(和可维护)的方法来编写: let labels = _.map(_.keys( _.groupBy(sd, 'month')), (i) => { return months[i].abr; }); 可以使用链接简化它的可读性: let labels = _(sd) .groupBy('month') .keys() .map(key => months[key]) .value();

我已经解决了逻辑问题,但希望找到一种更可读(和可维护)的方法来编写:

let labels = _.map(_.keys( _.groupBy(sd, 'month')), (i) => {
      return months[i].abr;
    });

可以使用链接简化它的可读性:

let labels = _(sd)
    .groupBy('month')
    .keys()
    .map(key => months[key])
    .value();
const labels = _(sd).groupBy('month').keys().map(i => months[i].abr);
使用方法链接:

let labels = _(sd)
    .groupBy('month')
    .keys()
    .map(key => months[key])
    .value();
const labels = _(sd).groupBy('month').keys().map(i => months[i].abr);
以下可能在语义上更好地表达您的意图:

const labels = _(sd).map('month').uniq().map(i => months[i].abr);
const月=[
{},
{
abr:'一月',
完整:“一月”
},
{
abr:'二月',
完整:“二月”
},
{
abr:'三月',
完整:“三月”
},
{
abr:'四月',
完整:“四月”
},
{
abr:“五月”,
完整:“五月”
},
{
abr:'六月',
完整:“六月”
},
{
abr:'七月',
完整:“七月”
},
{
abr:'八月',
完整:“八月”
},
{
abr:‘九月’,
完整:“Septmeber”
},
{
abr:'十月',
完整:“十月”
},
{
abr:'十一月',
完整:“11月”
},
{
abr:'十二月',
完整:“12月”
}
];
常数sd=[
{id:1,年份:2017,月份:10,服务:3,val:20},
{id:2,年份:2017,月份:10,服务:1,val:50},
{id:3,年份:2017,月份:10,服务:2,val:25},
{id:4,年份:2017,月份:11,服务:3,val:40},
{id:5,年份:2017,月份:11,服务:1,val:30},
{id:6,年份:2017,月份:11,服务:2,val:35},
{id:7,年份:2017,月份:12,服务:3,val:30},
{id:8,年份:2017,月份:12,服务:1,val:20},
{id:9,年份:2017,月份:12,服务:2,val:50}
];
常量标签1=sd.groupBy('month').keys().map(i=>months[i].abr);
控制台日志(标签1);
常量标签2=sd.map('month').uniq().map(i=>months[i].abr);
控制台日志(标签2)

在识别lodash之前,我得到一个错误“\uIs not a function”。。。错误指向sd。。。然而,我应该说,我只是为了简单而抽象了我的问题,当我将您的解决方案添加到我的vue组件时,我得到了这个错误。在Stackoverflow中运行它似乎很好…在这里绝对有效。。。你不认识vue吧?不认识。最近一直在使用Angular和一些React。。。您可以提出一个关于Vue特定案例的新问题。