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で結合するというやり方で行ってみました。
もっとスマートなやり方でできるかもしれませんが、とりあえず、これはこれで仕事で使ってみたので、備忘録としておきます。
0 件のコメント:
コメントを投稿