今日も配列に関する質問を続けます:
ここでの難点の 1 つは、数値ソートに負の数があることです。 sort を使用して並べ替えてもエラーが報告されます。
それで、いくつか考えてテストした結果、私の答えは次のとおりです:
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(' ') }
まず、正の数値と負の数値を 2 つのグループに分け、次にそれぞれを並べ替え、最後に配列をマージし、最初と最後の桁を取得します。配列、つまり Can です。
その方法は少し愚かです。ははは、私はその愚かな鳥です。
最後に、他の人が書いたコードをチェックしてください:
最も実用的なコードは、Math の max メソッドと min メソッドを直接使用する
function highAndLow(numbers){ numbers = numbers.split(' ').map(Number); return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers); }
です (なぜ私はそれを思いつかなかったのでしょうか?豚の頭、555...)
私の元のアイデアに最も近いものがもう 1 つあります:
function highAndLow(numbers){ var arr = numbers.split(' ').sort(function(a, b) { return a - b }); return arr[arr.length -1] + ' ' + arr[0]; }
それは、数値を配列に変換しなかったため、エラーが発生したため
function highAndLow(numbers){ numbers.split(' ').sort((a, b)=> a - b }); numbers.splice(1,numbers.length-2); return numbers.join(' '); }
として書いただけです (low-レベルエラー)
以上がコード戦争のサンプルチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。