2017-09-16 1 views
0

J'ai une question.Comment diviser un nombre et une chaîne à partir d'un tableau de chaînes?

Si j'obtiens la chaîne "10S2D*3T", je dois diviser le nombre et non le nombre comme ça.

Ce que je veux faire

ENTRÉE

"10S2D*3T" 

SORTIE

[10, 'S', 2, 'D','*',3,'T'] 

Il est mon résultat

function solution(dartResult) { 
 
    var answer = 0; 
 
    var point = dartResult.split(/\D/gi); 
 
    var option = dartResult.split(/\d/gi); 
 
    console.log(point); 
 
    console.log(option); 
 
    return answer; 
 
} 
 

 
console.log(solution("10S2D*3T"));

+0

Utilisez la méthode de correspondance. Aussi votre description n'est pas claire car 'D' et' * 'ne sont pas des nombres et sont séparés dans le résultat. –

+0

Qu'entendez-vous par "diviser nombre"? Vous voulez extraire le numéro de la chaîne d'entrée? Vous voulez effectuer une division? Par ailleurs, quelle est la signification de "S", "D", "T" et "*"? Nous avons besoin de plus de contexte afin de fournir des réponses précises. – leaf

Répondre

2

Vous pouvez utiliser la méthode de répartition de chaîne et transmettre une expression régulière pour vérifier les chiffres et filtrer le tableau de chaînes vides.

var regExp = /(\d*)/; 
var output = '10S2D*3T'.split(regExp).filter(Boolean); 

output will be: 
["10", "S", "2", "D", "*", "3", "T"] 

https://i.stack.imgur.com/QAr3G.png

+0

Merci beaucoup. – zynkn

+0

Vous devez expliquer pourquoi vous avez placé le groupe de capture dans l'expression régulière. C'est la chose importante qu'il manquait dans son code. – Barmar

+0

groupe de capture est pour vérifier un nombre quelconque de chiffres dans la séquence. –