Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
¿Cómo puedo crear una matriz que no se puede cambiar?

Tengo un problema con el filtrado. Tengo mi filtro funcionando como quiero en su mayor parte. Actualmente tomo la entrada del usuario en formato de cadena, luego comparo esa cadena con el texto interno de mis divisiones itemWrapperColumns. Esto luego crea una matriz de ID que utilizo para comparar con mi objeto original de elementos en los que se basan mis itemWrapperColumns. Creo un nuevo objeto de solo los elementos que están incluidos en el filtro. Esto luego alimenta mi función que crea mi contenido HTML.

Esto es exactamente lo que quiero, ya que quiero limitar el contenido en pantalla a lo que el usuario quiere ver a través del filtro para que puedan aplicar ordenaciones a los datos ete....

El problema que tengo es si el usuario usa tres criterios para filtrar, por ejemplo; Inicio: 307 itemWrapperColumns Filtro de usuario: "x","y","z" Fin: 1 itemWrapperColumns

Si el usuario elimina "z", dejando así "x" e "y", esperaría ver 50 itemWrappers, pero debido a que el único itemWrapperColumns que tengo en este punto es el 1 del filtro anterior, eso es todo lo que queda.

Una idea sería crear una instantánea de las 307 itemWrapperColumns que se cargan al principio y luego usarlas como mis datos de filtro, pero no puedo descifrar esta parte. Esperaba que var itemWrapper lo resolviera, pero esa variable sigue actualizándose a medida que el filtro comienza a restringir el contenido.

Este es mi código para filtrar mis datos;

 // create a varaible full of all item wrappers from items in stash var itemWrappers = document.getElementsByClassName('itemWrapperColumns'); function itemFilter(){ var input, array, filter, txtValue, listofIDs, i, a; input = document.getElementById('userFilter'); array = input.value.split(','); itemWrappers = itemWrappers; listofIDs = [] // this loops through each item of object for (i = 0; i < itemWrappers.length; i++){ // assigned a variable to each item a = itemWrappers[i]; // grab all the text associated with the item txtValue = a.innerText; // console.log('item ID: ', a.getAttribute('data-id')) for (x = 0; x < array.length; x++){ y = array[x] if(array.every(item => txtValue.toUpperCase().includes(item.toUpperCase()))==true){ listofIDs.push(a.getAttribute('data-id')); } } } return listofIDs; }; // returns an itemList that is either all the items if there is no text in the filter // or returns a filtered down item list that gets passed onto displaying items function newItemsList() { var filterInput = document.getElementById('userFilter'); if (filterInput.value == ''){ var itemList = items; }else{ var itemList = items.filter(val => itemFilter().includes(val.id)); } return itemList }; // run functions on keyup of 'Enter' $('#userFilter').keyup(function(event) { if (event.keyCode === 13) {displayingItems(newItemsList()) } });
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda