• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

165
Views
Cómo filtrar una matriz de objetos que se almacenan solo una vez para cada elemento coincidente

Estoy trabajando con Javascript y tengo la siguiente matriz de objetos:

 const offersStep = [ {a: 1, price: 67.10}, {a: 3, price: 88.20}, {a: 5, price: 88.20}, {a: 7, price: 57.10}, {a: 13, price: 57.10}, {a: 15, price: 57.10}, {a: 29, price: 57.10}, {a: 30, price: 57.10}, ]

¿Qué y cómo tengo que hacer, para almacenar en una nueva matriz , esos objetos, ignorando aquellos cuyo price de utilería tiene un valor que ya está almacenado en la nueva matriz?

Rendimiento esperado:

 offers = [ {a: 1, price: 67.10}, {a: 3, price: 88.20}, {a: 7, price: 57.10} ]
about 3 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede almacenar los objetos en un mapa descifrado de su price . Después de haber almacenado precios únicos, distribuya el iterador de valores () del Mapa en una nueva matriz para obtener su resultado.

 const offersStep = [ {a: 1, price: 67.10}, {a: 3, price: 88.20}, {a: 5, price: 88.20}, {a: 7, price: 57.10}, {a: 13, price: 57.10}, {a: 15, price: 57.10}, {a: 29, price: 57.10}, {a: 30, price: 57.10}, ]; function filterOffers(offers) { let offersByPrice = new Map(); for (let offer of offers) { if (!offersByPrice.has(offer.price)) { // Store the offer offersByPrice.set(offer.price, offer); } } return [...offersByPrice.values()]; } console.log(filterOffers(offersStep));

about 3 years ago · Juan Pablo Isaza Report

0

Ocurrencia

Filtre la matriz original, controlando los precios encontrados hasta el momento por medio de un conjunto.

Código

 const offersStep = [ {a: 1, price: 67.10}, {a: 3, price: 88.20}, {a: 5, price: 88.20}, {a: 7, price: 57.10}, {a: 13, price: 57.10}, {a: 15, price: 57.10}, {a: 29, price: 57.10}, {a: 30, price: 57.10} ]; let offer , nset_prices = new Set() ; offer = offersStep.filter ( po_item => { let b_ok = !nset_prices.has(po_item.price) ; if (b_ok) { nset_prices.add(po_item.price) } return b_ok; }); console.log(offer);

about 3 years ago · Juan Pablo Isaza Report

0

¡Déjame si el código te funciona!

 const offersStep = [ { a: 1, price: 67.1 }, { a: 3, price: 88.2 }, { a: 5, price: 88.2 }, { a: 7, price: 57.1 }, { a: 13, price: 57.1 }, { a: 15, price: 57.1 }, { a: 29, price: 57.1 }, { a: 30, price: 57.1 }, ]; let tempOffers = {}; offersStep.forEach((eachObj) => { const { price } = eachObj; if (!tempOffers[price]) { tempOffers[price] = eachObj; } }); const offers = Object.values(tempOffers); console.log("offers are", offers);

about 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error