问题标签 [lodash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Lodash:从多个构造单个对象 - 合并/覆盖属性
注意:我在 lodash 下提出了这个问题,因为我很确定它可以帮助我很好地解决这个问题,但我现在还没有把它放在首位
我有一个描述不同用户角色及其权限的对象;
我将定义“像这样”的 10-15 个角色(这并不反映应用程序代码,而是问题本身):
连接的用户将拥有多个角色;在该示例中,它可能是['role1', 'role2']
,因此我需要构造一个permissions
对象,该对象将是所有用户角色中定义的所有道具的组合。
它基本上是基于白名单的,所有“真”属性都应该覆盖任何被定义为假的东西。因此,预期的结果应该是:
我不太确定如何在不依赖疯狂嵌套循环的情况下解决这个问题
这是 JSBin 的起点:http://jsbin.com/usaQejOJ/1/edit?js, console
谢谢你的帮助!
javascript - Grunt:递归模板是如何工作的?
我是 Grunt 的新手,我在使用递归模板时遇到了一些问题。这是一个具体的,最小的例子:
将其弹出到 aGruntfile.js
中,运行npm install grunt
,然后运行grunt print_build_dir
。
如果你在/Users/jvilk/Code/grunt-test
,我希望输出是:
相反,输出是:
这里发生了什么?从test
配置属性中,很明显path.resolve
应该接收到属性的正确参数vendor_dir
——也就是说,它会解析为path.resolve("/Users/jvilk/Code/grunt-test/dev", "vendor")
——但我完全不明白为什么它会build.root_dir
在属性的值前面加上一个额外的正斜杠。
我和我的挣扎将不胜感激任何帮助或指导Gruntfile
。谢谢!
编辑:作为先发制人的附录,我意识到我不需要使用模板来实现这个特定的例子——我可以path.resolve
直接使用。但是,在我的非示例Gruntfile
中,其中一个目录名称path.resolve
是动态设置的属性,因此需要使用模板。
EDIT2:正如 Andrew 所指出的,模板扩展vendor_dir
的工作方式如下:
我的test
财产有效,因为它像这样扩展:
我不明白他们为什么做出这个设计决定,但我可以很容易地模拟我想要的模板语义,方法是将所有这些包装在一个重复处理字符串直到全部<%=
消失的函数中。
javascript - Lo-dash 扩展/分配默认行为
我试图理解 lodash 中的分配/扩展函数,因为我通过 mean.io 堆栈设置遇到了一个非常令人困惑的结果。
这里:
我得到的是:
问题是:我不应该每次都得到相同的结果:console.log(require(__dirname + '/../config/env/all.js'));
?
javascript - 使用自定义函数在 lodash 中创建链
有没有办法在lodash链中获得我自己的自定义函数。所以例如像这样:
javascript - 如何在 lodash.template() 中取消转义 html 标签?
我想使用lodash.template()创建一个 html 代码,但结果出乎我的意料。
结果,填充的文本a
已被转义。
我怎样才能得到结果expected
?
我可以设置options.escape
,但不知道如何使用此选项。
谢谢!
javascript - 是否有 _lodash 方法可以根据数组中字段的值从数组中删除行?
我正在使用以下功能:
该功能有效,但现在我的应用程序使用 _lodash 库并且正在使用所有现代 IE8 及更高版本的浏览器,我想知道是否有更有效的方法来使用 _lodash 或其他一些浏览器本机方法来完成相同的功能。
node.js - 在 browserify 和主干设置中参考 undescore
我正在尝试使用 browserify 将应用程序捆绑为节点模块,我遇到了以下情况:
我似乎无法获得下划线功能的参考。我肯定会需要它来操作数据。模板在这里只是一个示例用例,因为还有其他可扩展的选项。
同样,我也试图引用lodash.underscore
没有成功,它给出了同样的错误。
我有预感我在这里遗漏了一些东西。有什么帮助吗?
javascript - 分组数组变空(Lodash 的 groupBy 确实有效)
这是示例 plunker http://embed.plnkr.co/bJFmT0WlRfqUgrCxZRT6
首先:我正在按某个键对集合进行分组 - 在我的示例中是 yob。
我有两个选择——
- 我可以编写一个自定义函数来完成这项工作(我想这样做,因为我可以添加自定义逻辑)
- 我可以使用 lodash/underscore.js 提供的 _.groupBy
所以我决定尝试这两种方法 - 使用 lodash 我按一个键对集合进行分组并显示输出(参见 plunkr)
当我使用自定义方法时,studentsByYear
在这种情况下,数组在显示之前以某种方式变为空。在返回数组之前,我已经控制台记录了我的输出,并且数组具有所需的输出..
所以我的问题是为什么我的分组方法不起作用?我错过了一些明显的角度吗?是不是我必须在返回对象之前对其进行深层复制,如果是,请解释一下?
脚本
javascript - _lodash 可以测试数组以检查数组元素是否具有具有特定值的字段吗?
我有一个变量selectedSubTopicId
,我有一个 subTopic 对象数组:objectiveDetail.subTopics[]
. 每个subTopic
对象都有一个字段 subTopicId
我想用它来启用或禁用和添加主题按钮。我可以在 ng-disabled 中使用 lodash 来测试这个数组,如果数组的任何subTopic
对象元素的 asubTopicId
等于selectedSubTopicId
.
这是objectiveDetail中的数据示例。在这种情况下,subTopics 数组中只有一个元素。
这是 thefourtheye 建议的我的 Angular 控制器中的代码:
我的未显示单击功能的按钮如下所示:
问题是它不能很好地工作,并且按钮没有显示为禁用。
javascript - 如何使用 lodash 从列表中删除元素?
我有一个看起来像这样的对象:
我已经lodash
在我的应用程序中安装了其他东西。有没有一种有效的方法来lodash
删除条目:{"subTopicId":2, "number":32}
从obj
对象中?
或者有没有一种javascript方式来做到这一点?