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
のように、メソッド呼び出し元の配列への要素の追加が行われます。