配列同士をくっつけるときは、concat()
を利用します。しかし誤って、配列の末尾に値を追加するpush()
でconcat()
のようなことをしてしまいました。
var arr1 = [0,1,2]; var arr2 = [3,4,5]; var superArr = Array.prototype.push.apply(arr1,arr2); var superArr2 = arr1.push(arr2); console.log("★",superArr);//6 console.log("★2",superArr2);//7
そうすると、なぜか「6」と「7」が返ってきました。しかしこれらがいったいなにを指しているのかが解かりません。
両方ともpush()
を利用しているのでせめて同じ数字が返ってくるのかと思ったのですが、どうもapply()
という指定したレシーブオブジェクトのthis参照を第一引数の値に、第二引数をその指定したオブジェクトの引数として利用するものを使ったことで変わりました。
これらは、いったい何を意味した数字で、なぜ違う値が返ってきたのでしょうか。
書籍によるとpush()
は、配列が要素として追加されてしまうので注意と記述してありました。
この記述もよく理解できませんが、要素になるというのは、入れ子になってしまうということですか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。