Présumer:

str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6".

Mon objectif est d'extraire les nombres dans un tableau de nombres afin d'effectuer des calculs dessus.

En supposant que chaque nombre soit compris entre 0 et 9, dans C#, on pourrait utiliser la méthode int.TryParse sur chaque caractère et analyser ces nombres dans un tableau.

1) Existe-t-il un équivalent pour int.TryParse dans TypeScript ?

2) Quelle est la manière optimale d'extraire ces nombres dans un tableau, en supposant qu'une représentation numérique peut être plus longue qu'un caractère ?

Merci.

-1
Philip L 13 mars 2019 à 19:51

2 réponses

Meilleure réponse

Vous pouvez diviser sur un chaîne pour obtenir un tableau de caractères. Ensuite, vous pouvez filtrer chaque caractère en supprimant non -caractères numériques. Enfin, vous map chacun sur convertissez-le en nombre.

Chiffres entre 0 et 9

let str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6, Pears - 0"

let nums = str.split('').filter(i => parseInt(i) > -1).map(Number)

console.log(nums)

Tous les numéros

Nous pouvons utiliser cette expression régulière pour diviser sur des caractères non-mots (espaces, virgules, etc.)

/\W/
let str = "Water - 3, Tomatos - 44, Melons - 5, Apples - 666, Pears - 0"

let nums = str.split(/\W/).filter(i => parseInt(i) > -1).map(Number)

console.log(nums)
2
Get Off My Lawn 13 mars 2019 à 17:29

Vous pouvez utiliser match

let str = "Water - 3, Tomatos - 4, Melons - 5, Apples - 6"

let op = str.match(/\d+/g).map(e=> +e)

console.log(op)
1
Code Maniac 13 mars 2019 à 16:53