1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Array.prototype.filterメソッドを甘く見ていた…

Last updated at Posted at 2020-08-07

今まであまり意識しなかったのですが、配列要素を削除する際に5行以上かけていたのですが、1行でシンプルに完結できて感動したので共有します。

今までの自分のコード

const array = [0, 1, 2, 3, 4];

console.log(`before : array = ${array}`);

array.forEach((item, index) => {
    if(item === 1) {
        array.splice(index, 1);
    }
});

console.log(`after : array = ${array}`);

今後

const newArray = array.filter(n => n !== 1);

(*IEで動かすには、BabelやTypescriptでコンパイルする必要があります)

今まで自分が書いてたコードの拙さを思い知らされました…

関数型プログラミングという概念があります。
JavascriptでいうとElmが有名かと思います。
最近になって知り合いの話を聞くと、この関数型プログラミングを学んでおくと、かなりエンジニアとしての地力がつくと教えられました。
その知人は、Elmを学んだ事でTypescriptやReact, Reduxといった概念がスッと理解できるようになったとか。

他にも、(知り合いの超スゴいエンジニアの方いわく)今や、JSでfor分を使うのはあまりパフォーマンスの観点からよくなくて、Array.prototype.reduceを使うのが良いらしいです。
調べて見たら、こちらも(使いこなせるようになるまで時間はかかりそうですが)体得できればよりシンプルにコードを書けそうです。
関数型プログラミングの一種だそうです。

………コードの書き方1つとっても、奥が深くて覚える事がいっぱいだーーーー!!!!(だからこそ、プログラミングは面白い)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?