草庐IT

javascript - 使用 lodash 合并数组的对象

我正在尝试使用lodash将所有对象合并在一起,我尝试了_.assign和_.merge仍然单独显示对象。vararr=[{"asf":33,"ff1":12},{"xx":90,"ff2":13},{"xw":66,"ff3":176}]console.log(_.assign({},arr));//shouldshow{"asf":33,"ff1":12,"xx":90,"ff2":13,"xw":66,"ff3":176}http://jsfiddle.net/ymppagdq/ 最佳答案 这是你可以做到的:_.assign.

javascript - Lodash 在数组中通过 startswith 搜索

我正在创建一个简单的搜索,用于搜索以从输入传递的字符串开头的对象数组。所以我有这个:varitems=[{id:1,tags:['foo']},{id:2,tags:['fish','ball']},{id:3,tags:['bar','goo']},];input.on(function(e){vartest=_.filter(items,function(item){return_.includes(_.pluck(items,'tags'),input.val());});console.log(test);});这总是返回一个空数组,我想我缺少startsWith,我如何在我的

javascript - lodash 字段的唯一计数

我有一个包含500个对象的数组,每个对象如下所示:{name:'Hello',phone_num:'1234'}现在我想知道每个名字有多少个。所以我希望将我的数组转换为以下内容:[{name:'Hello',count:15},{name:'Marc',count:5}]所以我想考虑为此使用lodash但查看他们的文档我无法找到答案。他们有一个叫做countBy的东西,但它似乎不足以解决这个问题。谁能帮帮我? 最佳答案 您可以使用groupBy()按名称分组,然后map()每个分组的项目返回必要的计数和名称。varresult=_(

javascript - lodash 映射返回对象数组

我有一组对象,我希望将数据从药物转换为字符串类型。唯一的问题是返回药物数组而不是返回对象数组。例子输入:data=[{medicine:1234,info:"blabla"},{medicine:9585,info:"blabla"},..]期望的输出:data=[{medicine:"1234",info:"blabla"},{medicine:"9585",info:"blabla"},..]我得到了什么?药号数组。这是我的代码:vardataMedicines=_.map(data,'medicine').map(function(x){returntypeofx=='numbe

javascript - 检查任何对象的 'undefined' 或 'null'

我正在从事Angular项目,我经常检查对象或其属性的undefined或null。通常我使用lodash_.isUndefined()看下面的例子:this.selectedItem.filter(i=>{if(_.isUndefined(i.id)){this.selectedItem.pop();}})我看不出有什么问题。但是我在审查上述代码时与我的同事进行了讨论。他告诉我,如果i在if语句之前得到undefined那么它将抛出异常。相反,他建议我总是像这样检查i或i.id:if(!!i&&!!i.id){this.selectedItem.pop();}我确信他想表达的意思与他

javascript - _.extend/_.assign 的目的?

我看过很多教程或代码示例,其中开发人员使用Underscore的_.extend方法或Lodash的_.assign当简单地添加属性就足够的方法时,它总是让我感到困惑,使用扩展/分配而不是简单地添加属性有什么好处?有很多次我可以看到使用这些方法的好处,例如,当从另一个对象添加多个属性时,但大多数时候我看到它在下面的示例中使用,但我没有看到任何好处。对于以下代码而不是分配属性,是否有我不知道的好处?http://tech.pro/tutorial/1734/building-decoupled-javascript-applications-with-postaljsvarWeather

javascript - 在 lodash.js 中,它会缓存 `.value()` 方法的结果吗?

例如,我有这样的代码(coffeescript):sortedLatLng=_(w).sortBy(x)->x.time.map(x)->[x.longitude,x.latitude].uniq((x)->x[0].toFixed(3)+","+x[1].toFixed(3))#keepthreedecimaltomergenearbypointsconsole.log(sortedLatLng.value())myFunction1(sortedLatLng.value())myFunction2(sortedLatLng.value())console.log(sortedLat

javascript - 使用 Jasmine 测试以 uibModal 和 lodash 作为依赖项的服务

这是我第一次使用Jasmine,我已经测试了我的第一个工厂没有问题。但是现在,我想测试这个服务:angular.module('Questions',[]).service('QuestionsService',function($uibModal,$log,_){...}$uibModal来自UIBootstrap(参见here),_是Lodash。到目前为止,我的Jasmine测试是:describe('Service:QuestionsService',function(){varQuestionsService;beforeEach(inject(function(_Quest

javascript - 我什么时候应该使用 icepick.merge 而不是 lodash.merge

我最近发现需要在我的reducer中进行深入合并。我发现icepick.merge和lodash.merge做这份工作。似乎icepick.merge是一种合并和调用object.freeze的有效方式递归地。在使用Reactreducer(和不可变性)时,什么时候应该使用icepick而不是lodash?在数组和对象上调用object.freeze是一种好习惯吗? 最佳答案 这是一个是否强制执行不变性以及您想要什么级别的控制/抽象的问题。lodashlodash为您提供了以不改变数据结构的方式处理数据结构的工具,但它不会对数据结构

javascript - 使用 debounce 监听多个范围的值变化

目前,我使用下面的代码来监听Sheet1!A1:B2的变化:functionaddEventHandler(){Office.context.document.bindings.addFromNamedItemAsync("Sheet1!A1:B2","matrix",{id:"myBind"},function(asyncResult){Office.select("binding#myBind").addHandlerAsync(Office.EventType.BindingDataChanged,onBindingDataChanged2016);})}functiononBi