Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .过滤器不是一个函数_Javascript_Ecmascript 6_Filter_Functional Programming - Fatal编程技术网

Javascript .过滤器不是一个函数

Javascript .过滤器不是一个函数,javascript,ecmascript-6,filter,functional-programming,Javascript,Ecmascript 6,Filter,Functional Programming,这是我的对象(请确保它是一种类型的对象): 为什么使用.filter对我不起作用 这是因为我的变量是typeof object,并且该方法仅适用于数组吗 this.activeUsers = window.users.filter( function(user) { // return ( (user.test === '0') && (user.isok === '0') ); return user.user_id === 1; }); 获取错误:

这是我的对象(请确保它是一种类型的对象):

为什么使用
.filter
对我不起作用

这是因为我的变量是
typeof object
,并且该方法仅适用于数组吗

this.activeUsers = window.users.filter( function(user) {
     // return ( (user.test === '0') && (user.isok === '0') ); 
     return user.user_id === 1;
}); 
获取错误:

.过滤器不是一个函数

建议的对象替代方案是什么

是数组上的一种方法。因为您发布的代码包含一个对象,所以您看到了这个错误。您可能希望在从对象获取所有值后应用过滤器,如下所示:

var用户={
"1": {
“用户id”:1,
“测试”:“,
“用户名”:“potato0”,
“isok”:“正确”
},
"2": {
“用户id”:2,
“测试”:“,
“用户名”:“potato1”,
“isok”:“正确”
},
"3": {
“用户id”:3,
“测试”:“,
“用户名”:“potato2”,
“isok”:“正确”
},
"4": {
“用户id”:4,
“测试”:“,
“用户名”:“potato3”,
“isok”:“位置D”
}
};

log(Object.values(users.filter)(user=>user.user_id==1))
过滤器
在阵列上工作。你的不是数组。如有疑问,请始终参考。过滤对象的建议解决方案是什么@31piy@wellhellothere修正给你一个对象而不是数组的问题。我认为这是一个好问题。只需添加一条注释,说明Array.prototype.filter仅适用于Array,因此您必须使用一些Object.values()或Object.keys()来处理..@KevinB您能帮我提一下建议吗?我会批准你的回答(限制4分钟)。这比在数组上运行相同的方法慢吗(从性能方面)。@wellhellothere--当然慢了,因为我们首先提取对象的值,然后迭代这些值。如果你能修复这段代码的源代码,让它给你一个数组,这就是推荐的修复方法。
this.activeUsers = window.users.filter( function(user) {
     // return ( (user.test === '0') && (user.isok === '0') ); 
     return user.user_id === 1;
});