Renvoie le plus grand numéro de téléphone dans le tableau JS

Je dois renvoyer le plus grand numéro de téléphone, pas l'index, d'un tableau en Javascript. J'essaie de supprimer les caractères non numériques puis de trouver le plus grand nombre. Je suis nouveau et pas connu avec la syntaxe. Beaucoup d'exemples montrent certaines parties de mon problème. Je ne sais pas comment les connecter en une seule fonction et comment renvoyer la réponse. Sil te plait aide moi. Voici ce que j'ai:

function myFunction(array) { var largest = array.replace(/\D/g, ''); for (var i = 0; i < array.length; i++) { if (largest < array[i]) { largest = array[i]; } } console.log(largest); } myFunction([509 - 111 - 1111, 509 - 222 - 2222, 509 - 333 - 3333]); 

C'est une alternative.

Je recommanderais de garder chaque partie du nombre dans un tableau (ce qui en fait un entier ).

 function myFunction(array){ var res=""; for(var i=0,l=array.length;l>l;i++){ res=res+array[i][0]+' - '+array[i][1]+' - '+array[i][2]+'\n' } console.log(res) } myFunction([[509,111,1111],[509,222,2222],[509,333,3333]]); 

Comme suggéré par d'autres amis, vous devez envelopper les numéros de téléphone entre guillemets car ce ne sont pas des nombres. Une fois que vous avez fait cela, essayez la suite de la logique pour extraire les résultats souhaités pour vous

 function myFunction(array) { // Creates the number array against the telephone numbers var numberArray = array.map(function(phone){ return parseInt(phone.replace(/\D/g, '')); }); // Now it is simple to compare and find the largest in an array of numbers var largestIndex = 0; var largestNumber = numberArray[0]; for (var i = 0; i < numberArray.length; i++) { if (largestNumber < numberArray[i]) { largestNumber = numberArray[i]; largestIndex = i; } } // Fetch the value against the largest index from the phone numbers array console.log(array[largestIndex]); } myFunction(["509 - 111 - 1111", "509 - 222 - 2222", "509 - 333 - 3333", "509 - 333 - 3332"]); 

Si vous souhaitez utiliser certaines fonctions JavaScript intégrées, vous pouvez utiliser la méthode de la carte des tableaux pour modifier chaque élément du tableau et la méthode Math.max pour trouver le plus grand nombre.

 function myFunction(array) { var array = array.map(function(elementOfArrayAtIndex) { return parseInt(elementOfArrayAtIndex.replace(/\D/g, ''), 10); }); var largest = Math.max.apply(null, array); console.log(largest); } myFunction(["509 - 111 - 1111", "509 - 222 - 2222", "509 - 333 - 3333"]); 

Voici un violon http://jsfiddle.net/v3b7gx6L/1/

C'est essentiellement ce que fait la méthode de la carte

 for(var j = 0; j < array.length; j++) { array[j] = array[j].replace(/\D/g, ''); } 

Vous allez vouloir passer les nombres en tant que cordes, comme le suggère K phi:

 myFunction(["509-111-1111", "509-222-2222", "509-333-3333"]); 

Tout d'abord, vous voudrez supprimer les tirets de la chaîne. Vous pouvez le faire avec la méthode de replace , qui prend un caractère à rechercher et un caractère pour le remplacer. Pour replace pour correspondre à toutes les instances du tableau de bord, nous devons utiliser une expression régulière, avec le drapeau g qui signifie "global". Nous trouvons un tableau de bord et le remplacons par rien, ce qui équivaut à supprimer les tirets. Dans ce cas, vous ferez ceci:

 "509-111-1111".replace(/-/g,''); =>"5091111111" 

Vous devrez alors transformer les chaînes en Number s, si vous souhaitez les comparer ou les ajouter. Vous pouvez le faire avec parseInt(string,radix) . radix définit la base à utiliser: dans ce cas, vous utiliserez la base dix. Donc, votre appel parseInt ressemblera à ceci:

 parseInt("5091111111",10); => 5091111111 

Vous pouvez effectuer ce processus sur chaque chaîne dans les arguments, puis les comparer pour déterminer le plus grand:

 var numbers = []; for (var i=0;i<array.length;i++) { var numberString = array[i].replace(/-/g,''); var number = parseInt(numberString,10); numbers[i] = number; } var largestNumber = numbers[0]; for (var i=0;i<numbers.length;i++) { if (numbers[i] > largestNumber) { largestNumber = numbers[i]; } } return largestNumber;