// modifiers for skin tones on the Fitzpatrick scale
const modifiers = [
  '\u{1f3fb}', // skin type 1-2
  '\u{1f3fc}', // skin type 3
  '\u{1f3fd}', // skin type 4
  '\u{1f3fe}', // skin type 5
  '\u{1f3ff}', // skin type 6
];

// baby emoji with fitzpatrick skin tone 4
const baby_4 = 'πŸ‘ΆπŸ½';

// replaces any skin tone modifiers with the given modifier
// if no modifier is provided, existing modifiers are removed
function replaceModifier (emoji, modifier) {
  let ret = emoji;
  for(let i = 0; i < modifiers.length; i++) {
    ret = `${ret}`.split(modifiers[i]).join(modifier || '');
  }
  return ret;
}

const baby = replaceModifier(baby_4, '');
// πŸ‘Ά

console.log(baby_4);

// change modifiers
for(let i = 0; i < modifiers.length; i++) {
  console.log(replaceModifier(baby_4, modifiers[i]));
}
// πŸ‘ΆπŸ»
// πŸ‘ΆπŸΌ
// πŸ‘ΆπŸ½
// πŸ‘ΆπŸΎ
// πŸ‘ΆπŸΏ

// add skin tone modifier to emoji with no skin tone
// supports ZWJ sequences
function addModifier(emoji, baseEmoji, modifier) {
  return emoji.split(baseEmoji).join(baseEmoji + modifier);
}

const peopleHoldingHands = 'πŸ§‘β€πŸ€β€πŸ§‘';
// πŸ§‘β€πŸ€β€πŸ§‘
const person = 'πŸ§‘';

// add modifiers
for(let i = 0; i < modifiers.length; i++) {
  console.log(addModifier(peopleHoldingHands, person, modifiers[i]));
}
// πŸ§‘πŸ»β€πŸ€β€πŸ§‘πŸ»
// πŸ§‘πŸΌβ€πŸ€β€πŸ§‘πŸΌ
// πŸ§‘πŸ½β€πŸ€β€πŸ§‘πŸ½
// πŸ§‘πŸΎβ€πŸ€β€πŸ§‘πŸΎ
// πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸΏ

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.