コード戦争の毎日の演習

巴扎黑
巴扎黑オリジナル
2017-06-23 13:56:221241ブラウズ

命令:

x シンプルで、単語の文字列を指定すると、最も短い単語の長さを返します。

文字列が空になることはなく、さまざまなデータ型を考慮する必要はありません。

説明によると, ここでは、空かデータ型かを判断する必要がないので、段落内の最も短いフォントの長さを自由に記述できます

最初は次のように書きました:

1 function findShort(s){2   var arr = s.split(' ').map(function(t){return t.length});3   return Math.min.apply(null,arr);4 }

ここで重要なことES6 以前のコード記述方法を使用することです。知識ポイントは 4 つあります:

1, string.split(' ')

Split() メソッドは、文字列を文字列配列に分割するために使用されます。この方法はシンプルでわかりやすいので、詳細は説明しません。

2、Array.map()

map() メソッドは、元の配列の各要素に対して順番にコールバック関数を 1 回呼び出して、新しい配列を形成します。配列。 。

参考リンク:こちらをクリックしてください

3, Math.min()

指定された値の中で最小の数値。数値に変換できないパラメータがある場合は、NaN が返されます。

参考リンク:こちらをクリックしてください

3, apply()

既存の関数を呼び出す際に、this オブジェクトを指定できます。これは現在のオブジェクト、つまりこの関数を呼び出すオブジェクトを指します。 apply を使用すると、このメソッドを一度作成すると、新しいオブジェクトで繰り返しメソッドを作成することなく、別のオブジェクトに継承できます。

参考リンク: ここをクリックしてください

その後、他の人の解決策を参照しました。 codewar には関数を 1 行で書ける優秀な人がたくさんいます。

1 function findShort(s){2   return Math.min(...s.split(' ').map(w=>w.length));3 }

メインのアプリケーションは次のとおりです。 ES6 の 2 つの新しい知識点。私は以前に ES6 を勉強したことがありますが、実務経験がないので、ここで復習します:

1, (...) は、配列の apply メソッドを置き換えることができるスプレッド演算子です。ここでは、配列を展開し、配列を関数パラメータに変換するために使用されます。

// ES5的写法Math.min.apply(null, [14, 3, 77])// ES6的写法Math.min(...[14, 3, 77])// 等同于Math.min(14, 3, 77);

参考リンク:こちらをクリックしてください

2、アロー関数(=>)

var f = v => v;//等同于var f = function(v) {  return v;
};//如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;// 等同于var f = function () { return 5 };var sum = (num1, num2) => num1 + num2;// 等同于var sum = function(num1, num2) {  return num1 + num2;
};

アロー関数は式をより簡潔にします。

詳細はここをクリックしてください

添付ファイル: codewar-この演習の演習アドレス

以上がコード戦争の毎日の演習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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