• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Hire tech talent
    • Blog
    • Sales
    • Salary Calculator

0

311
Views
Iterar a través del mapa y eliminar la entrada cuyo valor está vacío (usando Javascript)

Tengo debajo del objeto del mapa de la siguiente manera

 let monthMap = [ { "key": "Oct 2021", "value": [] }, { "key": "Dec 2021", "value": [ "2021-12-06T08:00:00.000Z", "2021-12-13T08:00:00.000Z", "2021-12-20T08:00:00.000Z", ] }, { "key": "Jan 2022", "value": [ "2022-01-03T08:00:00.000Z", "2022-01-10T08:00:00.000Z", ] }, { "key": "Feb 2022", "value": [ "2022-02-07T08:00:00.000Z", ] } ]

Quiero eliminar el par de valores clave de este objeto de mapa cuyo valor es una matriz vacía. por ejemplo, la clave de Oct 2021 tiene un valor vacío. entonces quiero eliminar esa entrada del objeto del mapa.

¿Puede alguien decirme cómo iterar a través de él y eliminar los datos de valor vacíos?

No he iterado a través de un objeto de mapa e intenté algunas formas en línea, pero no pude iterar a través de él.

Formas en que probé:

 for (const [key, value] of monthMap.entries()) { console.log(key, value); } for (const [key, value] of Object.entries(monthMap)) { console.log(key, value); }

¿Puede alguien decirme cómo iterar y eliminar entradas dinámicamente?

No estoy seguro si estoy usando la estructura correcta de monthMap, pero así es como se muestra en el registro de la consola

ingrese la descripción de la imagen aquí

almost 4 years ago · Santiago Trujillo
3 answers
Answer question

0

usar el método de filtro de matriz

 filteredMonthMap = monthMap.filter((month)=>{month.value && month.value.length !== 0;})

la condición dentro del método de filtro significa que el valor tiene un valor real y su longitud no es 0. tenga cuidado con el tipo de datos de la propiedad del valor, debe ser una matriz.

almost 4 years ago · Santiago Trujillo Report

0

Podrías usar el filter para lograr lo mismo. Compruebe la longitud de las matrices de value dentro de la devolución de llamada.

Más información sobre el filter : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

Editar:

Si la entrada es un mapa, entonces debe convertir el mapa en pares de valores clave, filtrar el resultado y luego volver a convertirlo en un mapa.

 let monthArr = [ { key: "Oct 2021", value: [] }, { key: "Dec 2021", value: [ "2021-12-06T08:00:00.000Z", "2021-12-13T08:00:00.000Z", "2021-12-20T08:00:00.000Z" ] }, { key: "Jan 2022", value: ["2022-01-03T08:00:00.000Z", "2022-01-10T08:00:00.000Z"] }, { key: "Feb 2022", value: ["2022-02-07T08:00:00.000Z"] } ]; const result = monthArr.filter((item) => { const { value } = item; if (value.length) return item; }); console.info(`Month as an array`, result); const inputMap = new Map([ ["Oct 2021", []], [ "Dec 2021", [ "2021-12-06T08:00:00.000Z", "2021-12-13T08:00:00.000Z", "2021-12-20T08:00:00.000Z" ] ], ["Jan 2022", ["2022-01-03T08:00:00.000Z", "2022-01-10T08:00:00.000Z"]], ["Feb 2022", ["2022-02-07T08:00:00.000Z"]] ]); const map1 = new Map([...inputMap].filter(([k, v]) => v.length)); console.info(`Month as a map`, [...map1]);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

almost 4 years ago · Santiago Trujillo Report

0

Puedes hacerlo usando Array.prototype.filter .

 const monthMap = [{key:"Oct 2021",value:[]},{key:"Dec 2021",value:["2021-12-06T08:00:00.000Z","2021-12-13T08:00:00.000Z","2021-12-20T08:00:00.000Z",]},{key:"Jan 2022",value:["2022-01-03T08:00:00.000Z","2022-01-10T08:00:00.000Z",]},{key:"Feb 2022",value:["2022-02-07T08:00:00.000Z"]}], result = monthMap.filter((m) => m.value?.length); console.log(result);

almost 4 years ago · Santiago Trujillo 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
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!