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

285
Visualizações
usar filtro para devolver valores de propiedad en un objeto

Tratando de hacer una función que use un filtro pero no un bucle for o while o una función foreach, que recorrerá una matriz de objetos solo para devolver sus valores de propiedad. Por ejemplo,

 function getShortMessages(messages) { return messages.filter(function(obj){ return obj.message }); }

entonces si llamo

 getShortMessages([{message:"bleh"},{message:"blah"}]);

Debería obtener una devolución de una matriz = ["bleh","blah"] Simplemente no estoy seguro de cómo implementar el filtro según estas pautas. También estaba pensando en usar una función de cadena, tal vez .map.

//// Aquí está la especificación completa del desafío del código/////

Básico: Filtro Ejercicio 4 de 18

Tarea

Use Array#filter para escribir una función llamada getShortMessages.

getShortMessages toma una matriz de objetos con propiedades '.message' y devuelve una matriz de mensajes que tienen menos de < 50 caracteres.

La función debe devolver una matriz que contenga los mensajes en sí, sin su objeto contenedor.

Argumentos

  • mensajes: una matriz de 10 a 100 objetos aleatorios que se ven así:
 { message: 'Esse id amet quis eu esse aute officia ipsum.' // random }

Condiciones

  • No utilice bucles for/while o Array#forEach.
  • No cree funciones innecesarias, por ejemplo, ayudantes.

Insinuación

  • ¡Intenta encadenar algunos métodos de matriz!

Ejemplo

 [ 'Tempor quis esse consequat sunt ea eiusmod.', 'Id culpa ad proident ad nulla laborum incididunt.', 'Ullamco in ea et ad anim anim ullamco est.', 'Est ut irure irure nisi.' ]

Recursos

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

repetitivo

 function getShortMessages(messages) { // SOLUTION GOES HERE } module.exports = getShortMessages

» Para volver a imprimir estas instrucciones, ejecute: funcional-javascript print » Para ejecutar su programa en un entorno de prueba, ejecute: funcional-javascript ejecutar programa.js » Para verificar su programa, ejecute: funcional-javascript verificar programa.js » Para obtener ayuda ejecutar: ayuda funcional-javascript

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Use .filter cuando desee obtener los objetos completos que coincidan con la propiedad o propiedades esperadas. Use .map cuando tenga una variedad de cosas y quiera hacer alguna operación en esas cosas y obtener el resultado.

El desafío es obtener todos los mensajes que tienen 50 caracteres o menos. Por lo tanto, puede usar el filter para obtener solo los mensajes que pasan esa prueba y luego map para obtener solo el texto del mensaje.

 function getShortMessages(messages) { return messages .filter(function(obj) { return obj.message.length <= 50; }) .map(function(obj) { return obj.message; }); }

JSFiddle: http://jsfiddle.net/rbbk65sq/

Si es posible que los objetos de entrada no tengan una propiedad de message , querrá probarlo con obj.message && obj.message.length <= 50 así:

 function getShortMessages(messages) { return messages .filter(function(obj) { return obj.message && obj.message.length <= 50; }) .map(function(obj) { return obj.message; }); }

ES6

Las mismas muestras de código en ES6:

 const getShortMessages = (messages) => messages .filter(obj => obj.message.length <= 50) .map(obj => obj.message);

Y si los objetos de entrada pueden no tener la propiedad del message :

 const getShortMessages = (messages) => messages .filter(obj => obj.message && obj.message.length <= 50) .map(obj => obj.message);

JSFiddle: http://jsfiddle.net/npfsrwjq/

over 4 years ago · Santiago Trujillo Relatório

0

Aunque me doy cuenta de que este hilo es muy antiguo, sentí que era necesario comentar en caso de que alguien se tropiece con él nuevamente. Lo haría como arriba simplemente usando la sintaxis es6 como esta:

 objects.filter(obj => obj.key === 'value').map(filteredObj => filteredObj.key);

Así que el ejemplo anterior sería:

 getShortMessages = (messages) => messages.filter(obj => obj.message.length <= 50).map(obj => obj.message);
over 4 years ago · Santiago Trujillo Relatório

0

Con valor de retorno personalizado (Ejemplo ES6 simple);

 const customReturnFiltere = (result) => { return products.filter((obj) => { return obj.stock !== 0; }) .map((finalResult) => { return { ...finalResult, info: 'product will be filtered if stock is 0' } }); }
over 4 years ago · Santiago Trujillo 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