[Javascript] 配列に複数の配列を混ぜ込む方法

2019年10月17日

Javascript テクノロジー プログラミング

Javascriptを使って、任意のデータを整形して組み合わせる時に、配列の結合を行いたい場合がある。 普通に一時配列どうしを2つくっつけたいのであれば、concat機能を使えばいいのだが、 今回は1つの配列内のデータで値の1つを、配列に置き換えるというやり方だ。 少し複雑なのだが、グループ設定データを延べデータに変換するような場合にニーズがある。 ※個人的にはたまに発生するので、今回関数化してみました。

ソースコード

// 配列の指定の箇所の値に、別の配列を入れ込む var __array_merge = function(arr_base , arr_add , num){ var arr_before = arr_base.slice(0 , num); var arr_after = arr_base.slice(num+1); return [].concat(arr_before,arr_add,arr_after); }; 【関数リファレンス】
__array_merge(arr_base , arr_add , num); arr_base : 元の配列 arr_add : 入換をする配列 num : 元配列の入換をする番号 return @ 結合後の配列
【注意】 functionを変数にいれてますが、普通に"function __array_merge()..."としてもらっても大丈夫です。

使い方

var arr_base = [0,1,2,3,4,5]; var arr_change = ["a","b","c"]; var res = __array_merge(arr_base , arr_change , 2); console.log(res); 【実行結果】 > [0, 1, "a", "b", "c", 3, 4, 5] 元配列の数値で"2"の値を"a,b,c"という文字列配列にそっくり入れ替えてみました。

解説

そもそも、spliceで簡単に入れ替えができると考えて仕事で行った所、splideでは、配列の特定箇所に配列を入れ込んでしまうため、spliceで前後に分割して、全ての配列をconcatで結合するというやり方で行ってみました。 もっとスマートなやり方でできるかもしれませんが、とりあえず、これはこれで仕事で使ってみたので、備忘録としておきます。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。