首页 > 解决方案 > 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?

谢谢!

标签: javascriptarrayslodash

解决方案


函数内,范围不同意味着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));

推荐阅读