1. ホーム
  2. javascript

[解決済み] JavaScriptで配列を別の配列に追加する [重複]。

2022-08-03 08:53:09

質問

この質問は、完全に重複しています。

どのように既存のJavaScript Arrayに配列を追加するには?

どのようにJavaScriptで別の配列に配列を追加するのですか?

この質問をする人が言いそうな他の方法。

  • 配列を別の配列に追加する
  • 配列の結合/連結
  • 配列を別の配列で拡張する
  • ある配列の内容を別の配列に入れる

私はこの質問に対する答えを探すのに時間を費やしました。時々、このような最も単純なものは、答えを見つけるのが最も難しいので、私はここに質問を追加しています うまくいけば、このようにキーワードやフレーズをたくさん持っています。 ブログ記事 . この質問に対して、他の有用な情報を回答したり、キーワードやフレーズを編集したりすることは、ご自由にどうぞ。

どのように解決するのですか?

新しい配列を返すのではなく、元の配列を変更したい場合は .push() ...

array1.push.apply(array1, array2);
array1.push.apply(array1, array3);

私は .apply を使って、配列の個々のメンバーをプッシュする 23 を一度に表示します。

または

array1.push.apply(array1, array2.concat(array3));


大きな配列を扱うには、一括して行うことができます。

for (var n = 0, to_add = array2.concat(array3); n < to_add.length; n+=300) {
    array1.push.apply(array1, to_add.slice(n, n+300));
}


このようなことが多い場合は、それを処理するメソッドや関数を作成します。

var push_apply = Function.apply.bind([].push);
var slice_call = Function.call.bind([].slice);

Object.defineProperty(Array.prototype, "pushArrayMembers", {
    value: function() {
        for (var i = 0; i < arguments.length; i++) {
            var to_add = arguments[i];
            for (var n = 0; n < to_add.length; n+=300) {
                push_apply(this, slice_call(to_add, n, n+300));
            }
        }
    }
});

というように記述し、このように使用します。

array1.pushArrayMembers(array2, array3);

var push_apply = Function.apply.bind([].push);
var slice_call = Function.call.bind([].slice);

Object.defineProperty(Array.prototype, "pushArrayMembers", {
    value: function() {
        for (var i = 0; i < arguments.length; i++) {
            var to_add = arguments[i];
            for (var n = 0; n < to_add.length; n+=300) {
                push_apply(this, slice_call(to_add, n, n+300));
            }
        }
    }
});

var array1 = ['a','b','c'];
var array2 = ['d','e','f'];
var array3 = ['g','h','i'];

array1.pushArrayMembers(array2, array3);

document.body.textContent = JSON.stringify(array1, null, 4);