Necesito filtrar en función de una búsqueda de palabras. Cuando busco una palabra, aparece lo que necesito, pero he tenido algunos problemas cuando se trata de buscar varias palabras que cumplan con los requisitos. Entonces, la cuestión es que necesito mantener la búsqueda anterior y agregar a esta matriz los siguientes resultados de la segunda palabra.
/* ===== Search images by keyword =====*/ searchByKeyword() { if (this.searchText != "" && this.searchText != null) { if (this?.plansBeforeSearch?.length == 0) { this.plansBeforeSearch = this.selectedPlans; } this.searchTextDivision(); for (let i = 0; i < this.searchTextArray.length; i++) { /* this.filteredImages = */ this.test[i] = this.planCollection .filter( (pl) => this.plansBeforeSearch.find((p) => p.name == pl.name) != null ) .filter((plan: Plan) => { return [ plan.id, plan.code, plan.name, plan.gallery, plan.tags, plan.brand, plan.description, plan.width, plan.depth, plan.sqf, plan.bedrooms, ].some((field) => field ?.toString() ?.toLowerCase() ?.includes( this.searchTextArray[i].toString().toLowerCase().trim() ) ); }); } this.filteredImages = this.test[0]; console.log(this.test); console.log(this.filteredImages); } } Creé una matriz de las palabras que quiero usar y para cada bucle las mantuve en esta matriz de prueba. Mantiene todas las imágenes que cumplen con el requisito.
Pero cuando lo paso a la matriz filteredImages que es la que muestra las imágenes, solo puedo pasar UNA posición. Entonces, en el código que compartí, configuré la primera posición para mostrar, ¡pero necesito los tres!
Pensé que tal vez si combino todas las matrices que tiene la matriz de prueba en una matriz con una posición, solo puedo pasar eso a las imágenes filtradas.