【发布时间】:2019-08-21 18:13:59
【问题描述】:
我不明白为什么当我尝试遍历对象的数组属性时,过滤器会返回一个空数组。
不过,当我尝试在 getFilteredUsers 方法中执行 console.log(this.users) 时,我可以在其原型中看到 filter 方法...
var userService = {
currentFilter: "active",
users: [
{ name: "Alex", status: "active" },
{ name: "Nick", status: "deleted" }
],
getFilteredUsers: function() {
// console.log(this.users);
return this.users.filter(function(user) {
return user.status === this.currentFilter;
});
}
};
console.log(userService.getFilteredUsers()); // []
【问题讨论】:
-
在
function(user) {...}之后添加.bind(this) -
克里斯,你能给我举个例子吗?我正在尝试但失败了。
-
this.users.filter(function(user) { return user.status === this.currentFilter; }.bind(this))
-
妈的,我改成箭头函数后就搞定了))谢谢!
-
伙计们,你能不能给我一些资源,这样我就可以获得这些知识?很多课程都展示了如何使用 JS 的东西进行操作,但它们并没有深入到水下岩石。
标签: javascript arrays loops object filter