ホームページ  >  記事  >  ウェブフロントエンド  >  コード戦争のサンプルチュートリアル

コード戦争のサンプルチュートリアル

零下一度
零下一度オリジナル
2017-06-23 09:35:331279ブラウズ

今日も配列に関する質問を続けます:

ここでの難点の 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。