Le filtrage d'une table peut impliquer plusieurs conditions de filtrage, this.filter
里面存的是所有筛选条件的v-model状态的一个对象,this.tableData
是从后端获取的所有原始表格数据的数组,this.filteredTableData
est un tableau de données de table filtrées.
filterTableData() {
this.filteredTableData = this.tableData.map((item, index) => {
Object.keys(this.filter).forEach(key => {
if (this.filter[key] && item[key] && item[key] === this.filter[key]) {
console.log(item)
return item
}
})
})
console.log(this.filteredTableData)
// this.paginateTableData()
},
Écrire ainsi fera le deuxième console.log(this.filteredTableData)
拿到一个全部是undefined
tableau. Cette erreur devrait être due au fait que forEach ne peut pas utiliser return pour sortir de la boucle.
Alors je veux savoir :
Comment implémenter cette fonction lors de l'utilisation de la carte et il est préférable de ne pas utiliser de variables à l'intérieur de la carte (vous pouvez l'utiliser, mais vous vous inquiétez simplement des performances) ?
Si la quantité de données this.filteredTableData
est particulièrement importante, existe-t-il un meilleur moyen ?
Utilisez [].filter directement...
La question est un peu difficile à comprendre
Si vous souhaitez convertir la carte en tableau
entrez simplement
[...map]
et c'est toutle filtre est plus approprié.
De plus, d'où vient l'idée selon laquelle l'ajout d'une variable affecte les performances. Ne vous fiez pas à deviner qu'il y aura des problèmes de performances avant que des problèmes de performances ne surviennent.
Soit vous utilisez une boucle for ordinaire à la place, soit vous devez définir une valeur booléenne en dehors de forEach pour juger.
J'ai déjà rencontré des problèmes causés par l'utilisation de map et forEach, et je les ai résolus plus tard en utilisant for...in et for...of raisonnablement. Pouvez-vous changer votre façon de penser et ne pas nécessairement utiliser map et forEach pour le résoudre.
Ne l'utilisez pas dans forEach
Permettez-moi de répondre à votre question sur le tableau contenant
undefined
.undefined
的问题吧。你在map函数里 没有
S'il n'y a pas dereturn
return
dans la fonction map, bien sûr il n'y aura pas de valeur de retour. La valeur de retour qui n'est pas affichée est bien sûr indéfinie.Je ne sais pas si tu penses ça.