Heute werde ich weiterhin eine Frage zu Arrays stellen:
Eine Schwierigkeit besteht darin, dass es bei der numerischen Sortierung negative Zahlen gibt. Beim Sortieren mit sort wird ebenfalls ein Fehler gemeldet.
Nachdem ich darüber nachgedacht und getestet habe, lautet meine Antwort wie folgt:
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(' ') }
Teilen Sie zuerst die positiven und negativen Zahlen in zwei Gruppen und sortieren Sie sie dann entsprechend. und schließlich: Um Arrays zusammenzuführen, nehmen Sie einfach die erste und letzte Ziffer des Arrays.
Die Methode ist etwas dumm. Hahaha, ich bin dieser dumme Vogel.
Schauen Sie sich zum Schluss den von anderen geschriebenen Code an:
Der praktischste ist
function highAndLow(numbers){ numbers = numbers.split(' ').map(Number); return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers); }
direkte Verwendung der Max- und Min-Methoden von Mathe (Warum bin ich nicht darauf gekommen? Schweinekopf, 555...)
Es gibt noch eine andere, die meiner ursprünglichen Idee am nächsten kommt:
function highAndLow(numbers){ var arr = numbers.split(' ').sort(function(a, b) { return a - b }); return arr[arr.length -1] + ' ' + arr[0]; }
Gerade zu dieser Zeit habe ich
function highAndLow(numbers){ numbers.split(' ').sort((a, b)=> a - b }); numbers.splice(1,numbers.length-2); return numbers.join(' '); }
geschrieben, weil die Zahlen nicht in ein Array umgewandelt wurden, was zu einem Fehler (Low-Level-Fehler)
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial für Code War. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!