草庐IT

javascript - 在使用 Lo-Dash 3.0 转换值时有什么好的 groupBy 方法?

给定一个像这样的对象数组:vardata=[{key:'a',val:'1'},{key:'a',val:'2'},{key:'b',val:'3'},{key:'c',val:'4'},{key:'c',val:'5'},{key:'c',val:'6'}];我想把它转换成这样:vardesiredResults={'a':[1,2],'b':[3],'c':[4,5,6]};到目前为止,我已经找到了两种使用lodash-fp实现此目的的方法,但我仍然想知道是否有更好的方法。第一种方式有点程序化:varout=_(data).transform(function(out,item){

javascript - lodash flow 函数在 typescript 中应该怎么写?

lodash.flow结合了两个或多个功能。lodash.flow(double,addTwo)将返回一个函数,该函数将加倍并添加两个。这个函数应该如何在typescript中输入(当前定义只是返回Function)?declarefunctionflow(f1:(a1:In)=>Intermediate,f2:(a1:Intermediate)=>Out):(a1:In)=>Out适用于两个函数,第一个函数有一个输入参数。我不确定如何扩展定义以适用于所有情况。如果这样调用,我的尝试可以支持多个函数:lodash.flow(f1,lodash.flow(f2,f3))但我正在寻找lod

javascript - 数据未定义或为空时如何使用 Lodash

在我的应用程序中,如果来自服务的数据未定义或为空,我的html将不会加载,我将收到“数据未定义”错误所以我想使用lodash,但不知道如何使用它..在我下面的ts文件中this._PartService.GetDataValues().subscribe(result=>{this.distributionData=this._PartService.part_data.partMasterDataCompleteList[0].partMasterData.plantSupplies.plantSupply}如果数据不存在,我将得到“partMasterDataCompleteLis

javascript - 什么时候 a => f(a) 不等同于 f?

lodash的新手并尝试使用它以获得更多理解。我不明白以下代码的行为。了解_.curry的arity参数后,我有一个代码片段产生的结果对我来说似乎很奇怪。constwords=['jim','john'];constpad10=words=>_.map(words,word=>_.pad(word,10));console.log(pad10(words));//['jim','john']constflipMap=_.flip(_.map);constflipPad=_.flip(_.pad);constcurriedFlipMap=_.curry(flipMap,2);constp

javascript - 使用 lodash 或下划线通过路径设置 JSON 中的值

我想使用这样的路径字符串在JSON中设置值,如下所示:{a:[{b:'c'}]}我想到了这个解决方案,但我想知道是否有更简单的方法来编写:functionsetValue(path,value,json){varkeys=path.split('.');_.reduce(keys,function(obj,key,i){if(i===keys.length-1){obj[key]=value;}else{returnobj[key];}},json);}所以调用setValue('a.0.b','d',{a:[{b:'c'}]})会将json更改为{a:[{b:'d'}]​​}

javascript - 将参数传递给 lodash _.result

对于第二个属性是方法名称的情况,有没有办法将参数传递给lodash_.result?或者是否有替代方法(最好是lodash)来执行此操作?用法示例可能是这样的:varobject={'cheese':'crumpets','stuff':function(arg1){returnarg1?'nonsense':'balderdash';}};_.result(object,'cheese');//=>'crumpets'_.result(object,'stuff',true);//=>'nonsense'_.result(object,'stuff');//=>'balderdash

javascript - 在 AngularJS 项目中使用 Lodash 有好处吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion有没有人在他们现有的AngularJS项目中实现Underscore或Lodash来提高性能?如果是这样:这些更改是否值得注意或您会推荐哪些更改?您认为Lodash的哪些功能带来的好处最大?我以前没有真正使用过Lodash,正在考虑学习它。但我通常喜欢学习一些东西,然后在不久之后实际使用它,这样概念就更好了。如果我能从实现Lodash中获得一些好处,那么我认为现在是学习它的好时机。我通常需

javascript - 是否可以将自定义比较器传递给 lodash 的 sortBy 函数?

例如,我想根据Intl.Collat​​or().compare进行排序。有什么方法可以将此比较器传递给_.sortBy使用吗? 最佳答案 你可以使用lodashmixin的_.mixin({sortWith:function(arr,customFn){return_.map(arr).sort(customFn)}});你现在可以做_.sortWith(array,function(a,b){//customfunctionthatreturnseither-1,0,or1ifaisthanb});您现在可以像这样链接它:_.c

javascript - 如何在支持 tree shaking 的同时使用 `chain` 和 `lodash-es`?

众所周知,lodash-es使用更模块化的语法构建,以通过构建工具支持treeshaking。但是,chain相关的功能意味着一些功能附加到对象/原型(prototype)链。我可以看到chain是用lodash-es发布的,但我不确定如何通过其他链接方法正确导入它。用例可能如下所示:import{chain}from'lodash-es'exportfunctiondouble(input){returnchain(input).without(null).map(val=>val*2).value().join(',')}编辑#1:重点不在于如何导入chain,而在于如何导入其他c

javascript - 获取父数组及其所有子数组

假设我有这种数据...data=[{"_id":"1","parentId":"thisPostId","topLevelId":"1","text":"comment",},{"_id":"2","parentId":"1","topLevelId":"1","text":"replytocomment",},{"_id":"3","parentId":"2","topLevelId":"1","text":"replytoreplytocomment",},{"_id":"4","parentId":"3","topLevelId":"1","text":"replytoreply