Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
Busque en la matriz JS sin perder el índice: la demostración de trabajo de Codepen usa fetch () y Alpine.js

Tengo una demostración de CodePen en funcionamiento aquí: https://codepen.io/JosephAllen/pen/vYmQpWL?editors=0010

Esta demostración:

  1. Obtiene usuarios de una API
  2. Ordena la lista en función de una propiedad de "puntos"
  3. Y luego muestra esa lista ordenada utilizando el índice como un "rango". En otras palabras, si tu índice es cero, estás en primer lugar.

Hay un campo de entrada para buscar y filtrar la lista, pero filtrar la matriz crea un nuevo índice para cada usuario, lo que arruina toda la idea de una clasificación.

¿Cómo puedo mantener la función de clasificación y búsqueda sin crear nuevos índices para los usuarios?

Si yo fuera el autor de la API, solo incluiría el rango como una propiedad, pero no lo soy.

Mi función de búsqueda:

 getUsers() { fetch(`https://trafficthinktank.com/wp-json/mjtw/v1/community`) .then((res) => res.json()) .then((data) => { this.isLoading = false; this.users = data.sort((a, b) => b.points - a.points); // this.users = this.users.map(user => ({ visible: true, ...user })); console.log(this.users); }); 0; }

Mi función de filtro:

 get filteredUsers() { if (this.search === "") { return this.users; } return this.users.filter((item) => { return item.name.toLowerCase().includes(this.search.toLowerCase()); }); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Los índices no pueden permanecer constantes ya que no puede haber una matriz con un número faltante en su secuencia de índice. Sin embargo, simplemente puede mapear su matriz y mantener los índices dentro. Mira esto, te puede ser útil:

 getUsers() { fetch(`https://trafficthinktank.com/wp-json/mjtw/v1/community`) .then((res) => res.json()) .then((data) => { this.isLoading = false; this.users = data.sort((a, b) => b.points - a.points); // this.users = this.users.map(user => ({ visible: true, ...user })); this.users = this.users.map((entity, index) => ({index, entity})); console.log(this.users); }); 0; }

y luego puedes filtrar así

 get filteredUsers() { if (this.search === "") { return this.users; } return this.users.filter((item) => { return item.entity.name.toLowerCase().includes(this.search.toLowerCase()); }); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!