どのメソッドが破壊的でどのメソッドがそうではないのか簡単に覚えられる方法などはありますでしょうか?
「JavaScriptの配列」となれば、注意しないといけないメソッドをはごく少数です。
- 配列のコピーにも使われる、非破壊的なメソッド…
slice、concat
- 並べ替え系の破壊的なメソッド…
sort、reverse
- 破壊的な切り出し用メソッド…
splice
以下は、考えるまでもありません。
- 意味合いから明らかに破壊的なもの…
push、pop、shift、unshift、fill、copyWithin
- そもそももとの配列を変更する要素がないもの(非破壊的)…
forEach、map、join、indexOfなど多数
またそもそもなぜそのような区分が存在するのでしょうか?
非破壊的なメソッドだけで素直に実装すると、効率が悪くなる…と考えられていたためです。
ただ、あらゆる変数が非破壊的な関数型言語などでの実装を踏まえて、JavaScriptでもImmutable.jsなど「非破壊的な動作だけで統一した配列」も利用可能となっています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/11 12:07