Liens utiles

How to Filter an Object by Key in JavaScript

TEST#1

Avec la fonction countRecurrence, nous pouvons compter le nombre d’itération de lettre qu’il y a dans la string.

const countRecurrence = (_str) => {
  const obj = {};
  const length = _str.length;
  for(let i = 0; i < length; i++) {
    obj[_str[i]] = (obj[_str[i]] || 0) + 1;
  }
  return obj;
}

function mix(s1, s2) {
  let str = "";
  const [_obj1, _obj2] = [
    s1.split("").filter((letter) => letter.toLowerCase() != letter.toUpperCase()).join("").toLowerCase(),
    s2.split("").filter((letter) => letter.toLowerCase() != letter.toUpperCase()).join("").toLowerCase()
  ].map(countRecurrence);
  
  console.log(_obj1, _obj2)
  
}

TEST#2

const countRecurrence = (_str) => {
  const obj = {};
  const length = _str.length;
  for(let i = 0; i < length; i++) {
    obj[_str[i]] = (obj[_str[i]] || 0) + 1;
  }
  
  const objFiltered = Object.keys(obj).filter(key => obj[key] > 1).sort().reduce((o, k) => {
    o[k] = obj[k];
    return o;
  }, {});
  
  return objFiltered;
}

function mix(s1, s2) {
  let str = "";
  const [_obj1, _obj2] = [
    s1.split("").filter((letter) => letter.toLowerCase() != letter.toUpperCase()).join("").toLowerCase(),
    s2.split("").filter((letter) => letter.toLowerCase() != letter.toUpperCase()).join("").toLowerCase()
  ].map(countRecurrence);
  
  console.log(_obj1, _obj2)
  
}

Untitled

TEST#3

Après avoir fait le tableau d’objet pour les correspondances de récurrences, j’ai formatté en fonction de la demande, il ne manque plus qu’à réorganiser en fonction de la demande.

1 ⇒ 49