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")