Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Filter - Fatal编程技术网

Javascript按类筛选对象数组

Javascript按类筛选对象数组,javascript,arrays,filter,Javascript,Arrays,Filter,在这个对象数组中 array = [ 0: foo1{name: "111", energy: 0, capacity: 0, comsuption: 0, season: 0, …} 1: foo1 {name: "222", energy: 0, capacity: 0, comsuption: 0, season: 0, …} 2: foo2 {name: "3", energy: 0, capacity: 0, comsupti

在这个对象数组中

array = [
0: foo1{name: "111", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
1: foo1 {name: "222", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
2: foo2 {name: "3", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
3: foo2 {name: "5", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
4: foo3 {name: "22", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
5: foo1 {name: "444", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
]
存在按对象?的类筛选的方法?。 例如:

let arr = array.filter( foo => foo === foo1) ; 
//预期产出:

arr = [ 
0: foo1 {name: "111", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
1: foo1 {name: "222", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
2: foo1 {name: "444", energy: 0, capacity: 0, comsuption: 0, season: 0, …}
]
thx使用

instanceof操作符测试一个 构造函数出现在对象的原型链中的任何位置。这个 返回值是一个布尔值

让arr=[]
foo1类{
构造函数(名称、值){
this.name='',
该值为0
}
}
第二类{
构造函数(名称、值){
this.name='',
该值为0
}
}
第三类{
构造函数(名称、值){
this.name='',
该值为0
}
}
设bar1=newfoo1();
设bar2=newfoo2();
设bar3=newfoo3();
arr.push(巴1,巴1,巴1,巴1,巴2,巴3,巴2,巴1);
document.write('签入浏览器控制台')
console.log(arr.filter(foo=>foo instanceof foo1))
const
数组=[{foo1:{name:{111],能量:0,容量:0,消费:0,季节:0},{foo1:{name:{222],能量:0,容量:0,消费:0,季节:0}},{foo2:{name:{3],能量:0,容量:0,消费:0,季节:0},{foo2:{name:{5,能量:0,容量:0,消费:0,季节:22},能量:0,容量:0,消费:0,季节:0},{foo1:{name:“444”,能量:0,容量:0,消费:0,季节:0}]
让result=array.filter(o=>o.foo1);

控制台日志(结果)
您还可以使用
构造函数.name
根据构造函数筛选数组

let arr = array.filter(foo => foo.constructor.name === "foo1")

请添加有效的数据结构。抱歉,添加了stackblitz。
let arr = array.filter(foo => foo.constructor.name === "foo1")