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

508
Views
How to make abbreviations/acronyms in JavaScript?

new to coding I'm trying to make a function that makes "abbreviations/acronyms" of words, e.g. 'I love you' -> 'ily'. I've tried rewriting the code in many ways but console.log only shows me the first letter of the first given word.

function makeAbbr(words) {
  let abbrev = words[0];
  let after = 0;
  let i = 0;
  for (const letter of words) {
    if (letter === '') {
      i = words.indexOf('', after);
      abbrev += words[i + 1];
    }
    after++;
  }
  return abbrev;
}
const words = 'a bc def';
let result = makeAbbr(words);
console.log(result)

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Without using arrays. But you really should learn about them.

  1. Start by trimming leading and trailing whitespace.
  2. Add the first character to your acronym.
  3. Loop over the rest of the string and add the current character to the acronym if the previous character was a space (and the current character isn't).

function makeAbbr(words) {
  words = words.trim();
  const length = words.length;
  let acronym = words[0];

  for(let i = 1; i < length; i++) {
    if(words[i - 1] === ' ' && words[i] !== ' ') {
       acronym += words[i];
    }
  }

  return acronym;
}
console.log(makeAbbr('I love you'));
console.log(makeAbbr('I     love     you'));
console.log(makeAbbr('   I    love    you   '));


And here's the version for GottZ

function w(char) {
   char = char.toLocaleLowerCase();
   const coll = Intl.Collator('en');
   const cmpA = coll.compare(char, 'a');
   const cmpZ = coll.compare(char, 'z');

   return cmpA >= 0 && cmpZ <= 0;
}

function makeAbbr(words) {
  words = words.trim();
  const length = words.length;
  if(!length) return '';

  let acronym = words[0];

  for(let i = 1; i < length; i++) {
    if(!w(words[i - 1]) && w(words[i])) {
       acronym += words[i];
    }
  }

  return acronym;
}
console.log(makeAbbr('I love you'));
console.log(makeAbbr('I     love     you'));
console.log(makeAbbr('   I    love    you   '));
console.log(makeAbbr('   \tI ...  ! love \n\r   .you   '));
console.log(makeAbbr('   \tI ...  ! Löve \n\r   .ÿou   '));

about 4 years ago · Juan Pablo Isaza Report

0

here is my implementation of your function: Split the sentence into an array, get the first letter of each word and join them into one string.

const makeAbbr = string => string.split(' ').map(word => word[0]).join('');

console.log(makeAbbr('stack overflow'));
console.log(makeAbbr('i love you'));

`

about 4 years ago · Juan Pablo Isaza Report

0

Since you wanted something using your approach, try this (code is commented)

function makeAbbr(words) {
  let abbrev = "";
  for (let i = 0; i < words.length - 1; i++) { // Loop through every character except the last one
    if (i == 0 && words[i] != " ") { // Add the first character
      abbrev += words[i];
    } else if (words[i] == " " && words[i + 1] != " ") { // If current character is space and next character isn't
      abbrev += words[i + 1];
    }
  }
  return abbrev.toLowerCase();
}
const words = 'a bc def';
let result = makeAbbr(words);
console.log(result)

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!