Javascript 使用firebase和vuejs筛选阵列
我正在用vuejs和firebase做一个webapp。我使用过滤器将一个数组“推”到数据表中,得到了堆栈 我认为我正确地遵循了有关如何使用filter()方法的de指令,但它不起作用Javascript 使用firebase和vuejs筛选阵列,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我正在用vuejs和firebase做一个webapp。我使用过滤器将一个数组“推”到数据表中,得到了堆栈 我认为我正确地遵循了有关如何使用filter()方法的de指令,但它不起作用 methods: { consulProds { let resultado = await db.collection('productos') .get() resultado.docs.forEach(doc => {
methods: {
consulProds {
let resultado = await db.collection('productos')
.get()
resultado.docs.forEach(doc => {
let productosTot = doc.data()
let productosInd= productosTot.filter(producto=>
producto.precio== 99)
this.productosind.push(productosInd)
})
}
}
当我在没有'filter'方法的行代码的情况下使用'doc.data()'执行'push'时,它会工作,并且我会在我的'data table'中获取数组。但是使用“过滤器”不会发生任何事情。原因很可能是因为
productosot
不是数组,而是“只是”一个JavaScript对象(不是数组),请参阅
只需使用if
检查precio
的值,如下所示:
methods: {
consulProds {
let resultado = await db.collection('productos').get()
resultado.docs.forEach(doc => {
let producto = doc.data()
if (producto.precio == 99) this.productosind.push(producto)
})
}
}
可能是因为没有等于99的
doc.data().precio
?是的。当我这样做时:“this.productosid.push(doc.data())”,去掉使用“filter”的行代码,数据就出来了。你能添加一些doc.data()
吗,这样我们可以进一步帮助你?