ネストの深い Array に flatten 的な動きをさせたい。
やりたいこと
これを
array = [1, 2, [3, 4, [5, 6, [7]]]] |
こうしたい
str = '1 2 3 4 5 6 7' |
やり方
toString()
してreplace
する
const array = [1, 2, [3, 4, [5, 6, [7]]]] |
疑似 flatten
文字列にしたものをsplit
すると元の配列をflatten
した感じになる。
疑似って言ってるのは数値が文字列になってしまったり、要素が文字列の時にカンマを含むと破綻するから
const array = [1, 2, [3, 4, [5, 6, [7]]]] |
数値は数値のままにしておきたい場合
const array = [1, 2, ['a', 'b', [5, 6, [7]]]] |
条件付きだけど、手軽に変換できて良いのではないかな
どういう使い方をしたかったのか
https://developer.cybozu.io/hc/ja/articles/202166310#step3
上記ページの「返り値」の部分、この動きを実装したかった。
// パラメータにオブジェクトや配列が渡された場合、クエリ文字列は以下のように展開されます。 |
こんな感じで実装
const getQuery = obj => |
params
に
{foo: 'bar', record: {key: ['val1', 'val2']}} |
を投入すると、query
には
foo=bar&record.key[0]=val1&record.key[1]=val2 |
が入る。