“JavaScript Encuentra la palabra más corta en la cadena” Código de respuesta

JavaScript Encuentra la palabra más corta en la cadena

const findShort = str => {
  // Convert string into an array of individual words:
  const arr = str.split(' ');
  // Sort array in ascending order:
  arr.sort((a, b) => a.length - b.length);
  // Return the first (shortest) element in the array:
  return arr[0];
};
codrzch

JavaScript Encuentra la palabra más corta en una cadena

let str = 'Sleep is critical for good health. Not getting enough sleep can lead \
to diminished brain performance and, in the long term, greater risk of \
health conditions. These include heart disease, stroke, and diabetes';

function findWordsByLen(str, len) {
  const punctuationReg = /[.:;,?!"`~[\]{}()<>/@#$%^&*=+_-]/g;
  const words = str
	.replaceAll(/\s{2,}/g, ' ')
	.replaceAll(punctuationReg, '')
	.split(' ');

  let wordsByLen = words.reduce((acc, word) => {
    let wordLen = word.length;
    if (!acc.has(wordLen)) acc.set(wordLen, new Set());
    acc.get(wordLen).add(word);
    return acc;
  }, new Map());

  const maxLen = Math.max(...wordsByLen.keys());
  const minLen = Math.min(...wordsByLen.keys());

  switch(len) {
  case 'all':
    return wordsByLen;
  case 'max':
    return wordsByLen.get(maxLen);
  case 'min':
    return wordsByLen.get(minLen);
  }

  if (Number.isInteger(len) && wordsByLen.has(len)) return wordsByLen.get(len)
  else return `The string doesn't have any words with a length of ${len}`

}

findWordsByLen(str, 'max');     // => Set(1) { 'performance' }
findWordsByLen(str, 'min');     // => Set(4) { 'is', 'to', 'in', 'of' }
findWordsByLen(str, 8);         // => Set(2) { 'critical', 'diabetes' }


findWordsByLen(str, 'all');
/* OUTPUT:
Map(9) {
  5 => Set(5) { 'Sleep', 'sleep', 'brain', 'These', 'heart' },
  2 => Set(4) { 'is', 'to', 'in', 'of' },
  8 => Set(2) { 'critical', 'diabetes' },
  3 => Set(5) { 'for', 'Not', 'can', 'and', 'the' },
  4 => Set(5) { 'good', 'lead', 'long', 'term', 'risk' },
  6 => Set(3) { 'health', 'enough', 'stroke' },
  7 => Set(4) { 'getting', 'greater', 'include', 'disease' },
  10 => Set(2) { 'diminished', 'conditions' },
  11 => Set(1) { 'performance' }
}
*/
codeager

Respuestas similares a “JavaScript Encuentra la palabra más corta en la cadena”

Preguntas similares a “JavaScript Encuentra la palabra más corta en la cadena”

Más respuestas relacionadas con “JavaScript Encuentra la palabra más corta en la cadena” en JavaScript

Explore las respuestas de código populares por idioma

Explorar otros lenguajes de código