4
4

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 5 years have passed since last update.

DartのListにおいてJavaScriptのArray.prototype.concatのようにリスト要素を展開して要素追加を行う

Last updated at Posted at 2014-03-18

JavaScriptで、ある配列にある配列の要素1つひとつを要素として追加したい場合、配列に対して配列をpushしてしまうと、配列そのものが要素として追加されてしまうので、Array.prototype.concatを使うかと思います。

JavaScriptにおけるArray.prototype.concatの例
var a = [1, 2, 3];
a = a.concat([4, 5, 6]);
// a => [1, 2, 3, 4, 5, 6]

DartのListの場合ですと、addAllを使います。

DartにおけるList.addAllの例
var a = [1, 2, 3];
a.addAll([4, 5, 6]);
// a => [1, 2, 3, 4, 5, 6]

この場合、JavaScriptのArray.prototype.concatと違うのは、concatが追加された結果を返すのに対し、DartのList.addAllは、メソッド呼び出し元のリストに対して追加を行う、という点です。

また、補足ですがJavaScriptではArray.prototype.push.applyを用いて配列要素の追加を行うことができます。

Array.prototype.push.applyを用いた例
var a = [1, 2, 3];
Array.prototype.push.apply(a, [4, 5, 6]);
// a => [1, 2, 3, 4, 5, 6]

こちらの場合ですと、DartのList.addAllのように、メソッド呼び出し元の配列への要素の追加が行われます。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?