2 votes

Résumer uniquement les chiffres d'une argumentation

Comment additionner seulement les nombres qui sont fusionnés avec des alphabets à l'intérieur d'un argument en javascript

function getSum(){}
 getSum("1ha","22rr","33y",44) => the output will be like this 100

J'ai essayé, mais le résultat n'est pas celui escompté.

 function getSum () {
   return Array.from(arguments).reduce((sum, value) => {
   if (Array.isArray(value)) {
     sum += getSum.apply(this, value)
   } else {
   sum += Number(value)
 }

  return sum
 }, 0)
}

Quelqu'un peut-il m'aider ?

3voto

Tim Biegeleisen Points 53335

Nous pouvons essayer une réduction après avoir utilisé match() sur chaque argument :

function getSum() {
    return Array.from(arguments).map(x => x.toString().match(/\d+/))
                                .reduce((partialSum, a) => partialSum + parseInt(a), 0);
}

var output = getSum("1ha", "22rr", "33y", 44);
console.log(output);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X