0
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.

JavaScript push()の戻り値

Last updated at Posted at 2020-11-11

#push()の戻り値
配列の末尾に要素を追加することができるpush()ですが、MDNによると、戻り値として返すのは要素を追加した後の新しい配列ではなく、新しい配列の要素数を返します。

新しい配列を返すと思っていたので、下記のような処理を行おうとした際にハマってしまいました。。。

confirmPushedArrayLength.js
let students = ['sato', 'suzuki', 'takahashi', 'tanaka', 'ito'];
//studentsに"watanabe"を追加して、追加後の要素数を取得したい。
let studentsCount = students.push("watanabe").length;
console.log(studentsCount); //undefined 取得失敗。

studentus.push("watanabe")の戻り値が"watanabe"追加後のstudentsの要素数6であるため、.lengthArray.lengthへのアクセスとならず、存在しないプロパティlengthにアクセスすることになり、undefinedを戻り値として返します。

confirmPushReturnValue.js
let students = ['sato', 'suzuki', 'takahashi', 'tanaka', 'ito'];
console.log(students.push("watanabe")); //6 戻り値は"watanabe"追加後のstudentsの要素数。

map()filter()はコールバック関数による処理後の新しい配列を戻り値として返してくれるなど、JavaScriptのArray.prototypeの各メソッドの戻り値は当然ながらそれぞれ違うので、思い込みで戻り値を推定しないように気を付けたいですね!

0
0
3

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
0
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?