javascript - lodash 数组 _includes
问题描述
如何在 lodash 中传递一个数组?
users = [{
name: 'aaa', age: 22
},{
name: 'bbb', age: 33
},{
name: 'ccc', age: 44
},];
this.selection = _.filter(users, function(p) {
return _.includes(['aaa', 'bbb'], p.name);
});
上面的代码工作正常我得到了用户 aaa 和 bbb 的所有详细信息
但是,如果我做这样的事情。testuser = ['aaa', 'bbb'];
this.selection = _.filter(users, function(p) {
return _.includes(this.testuser, p.name);
});
它抱怨this.testuser?
谢谢!
解决方案
在函数内,范围不同意味着this
指的是其他东西(大多数案例window
对象),因此您无法访问this.testuser
函数内部,因为它是在不同的范围内定义的。
为了使它工作,使用箭头函数(它没有自己的绑定到this
)而不是传统的函数语法。
this.selection = _.filter(users, p => _.includes(this.testuser, p.name));
您可以使用本机 Javascript 函数来完成此操作,而无需 lodash。
this.selection = users.filter(p => this.testuser.includes(p.name));
推荐阅读
- python - 如何在 Jupyter Python Notebook 中的 gmap 上显示文本?
- scala - 本地训练的和 Dataproc 训练的 Spark ML 模型之间的不一致
- kubernetes - Ingress-nginx 返回 503 到 app-root 路径
- macos - 启用“使用键盘导航”与 NSTableView 混淆
- angular - RxJS 取消订阅钩子
- java - 如何仅运行修改后的测试?
- css - vue 组件在过渡完成前销毁
- html - iOS(iPhone 8 Plus)上的网页显示混乱
- html - 将 Div 与 td 内的顶部对齐
- javascript - 为什么 css 动画不能与切换按钮一起使用?