Aujourd'hui, je vais continuer à poser une question sur les tableaux :
Une difficulté ici est qu'il y a des nombres négatifs dans le tri numérique. Le tri à l’aide du sort signalera également une erreur.
Donc, après réflexion et tests, ma réponse est la suivante :
function highAndLow(numbers){ var numArr=[],numArr1=[],numArr2=[]; numbers.split(' ').map(function(n){ if(n>=0){ numArr2.push(n); }else{ numArr1.push(n); } }); numArr1.sort((a,b)=>b-a); numArr2.sort((a,b)=>b-a); numArr = numArr2.concat(numArr1); numArr.splice(1,numArr.length-2); return numArr.join(' ') }
Divisez d'abord les nombres positifs et négatifs en deux groupes, puis triez-les respectivement, et enfin Pour fusionner des tableaux, prenez simplement le premier et le dernier chiffre des tableaux.
La méthode est un peu bête. Hahaha, je suis cet oiseau stupide.
Enfin, consultez le code écrit par d'autres :
Le plus pratique est
function highAndLow(numbers){ numbers = numbers.split(' ').map(Number); return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers); }
utilise directement les méthodes max et min de Maths (Pourquoi n'y ai-je pas pensé ? Tête de cochon, 555...)
Il y en a une autre qui se rapproche le plus de mon idée originale :
function highAndLow(numbers){ var arr = numbers.split(' ').sort(function(a, b) { return a - b }); return arr[arr.length -1] + ' ' + arr[0]; }
C'est juste à ce moment-là que j'ai écrit
function highAndLow(numbers){ numbers.split(' ').sort((a, b)=> a - b }); numbers.splice(1,numbers.length-2); return numbers.join(' '); }
car les nombres n'étaient pas convertis en tableau, ce qui entraînait une erreur (erreur de bas niveau)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!