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

98
Visualizações
Filas únicas Indexeddb matriz indexada

Tengo una tienda en IndexedDB donde la ruta de la clave es para el Id. de propiedad y también tengo una matriz indexada llamada IndexedWords

 [{ Id: 1, IndexedWords: ['Foo', 'bar'] }, { Id: 2, IndexedWords: [] } }

Estoy tratando de encontrar todas las filas vacías en la tienda y esto al encontrar la identificación de todos con valor en IndexedWords + toda la identificación de la tienda e intersectar esas matrices. La idea funciona, pero el problema es que estoy recibiendo los ID de IndexedWords x cantidad de veces donde x coincide con la cantidad de entradas en IndexedWords y cuando tengo 5000 filas y cada fila tiene más de 100 palabras, la matriz se vuelve más grande y más difícil. trabajar con. ¿Hay alguna forma de devolver solo ID distintos de IndexedDB en la consulta? Código actual a continuación

 var trans = db.transaction(storeName, IDBTransaction.READ_ONLY); var index = trans.objectStore(storeName).index("IndexedWords"); var getAllRequest = index.getAllKeys(); getAllRequest.onsuccess = function (evt) { items = evt.target.result; }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Si entiendo su pregunta, podría intentar crear un índice de entrada múltiple en IndexedWords y luego iterar sobre las claves únicas del índice.

about 4 years ago · Juan Pablo Isaza Relatório

0

Espero que esto ayude, sin la sobrecarga de la API de IndexedDB, ya que no pude hacer funcionar su código de muestra de IndexedDB.

Repita las palabras y cree un nuevo objeto que contenga una palabra como clave, con una matriz de ID como valor si la palabra está en IndexedWords para el elemento.

Cree un objeto vacío y algunos datos de muestra

 let index = [{ Id: 1, IndexedWords: ['Foo', 'bar'] }, { Id: 2, IndexedWords: ['blue', 'cat', 'mouse'] }, {Id: 242, IndexedWords: ['salmon', 'blue', 'bar']} ]; let wordz = {};

Cree una matriz plana de todas las palabras únicas de los datos de muestra y elimine los duplicados de la matriz de todas las palabras para obtener una lista de palabras distintas.

 let allWords = index.map((z) => (z.IndexedWords)).flat() allWords = [...new Set(allWords)]

Itere sobre cada palabra única y cree un nuevo objeto con la palabra como clave, con una matriz de ID como valor

 allWords.forEach( (word) => { // create an empty array for the new wordz[word] wordz[word] = [] // push the item Id onto wordz[word] // index.forEach((item) => { if(item.IndexedWords.indexOf(word)>=0) { wordz[word].push(item.Id); } }) }) console.log(wordz) Foo: [1] bar: (2) [1, 242] blue: (2) [2, 242] cat: [2] mouse: [2] salmon: [242]
about 4 years ago · Juan Pablo Isaza Relatório
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