トラック
/
jq
jq
/
演習
/
配列の平坦化
配列の平坦化

配列の平坦化

初級

はじめに

緊急物資が届きましたが、1つ問題があります。 壊れないようにするため、品物(懐中電灯、救急箱、毛布)は箱の中に詰められています。しかも、その箱のいくつかは、ほかの箱の奥で何層にも入れ子になっています。

いざというときに備えて、すべてを1つの箱からすぐに取り出せるようにしておく必要があります。 物資をすべて箱から出して、1つの箱にまとめることはできますか? そうすれば、いちばん必要なときにすぐに使えます。

説明

任意の深さで入れ子になった配列を受け取り、完全に平坦化した配列を返します。

言語トラックによっては、入力の配列にnullのような値が含まれることがあります。また、そのような値をどのように表すかはトラックによって異なります。 そのような値は、平坦化した配列から除外してください。

さらに、トラックによっては、入力のデータ型が異なっていたり、含まれる値の型が異なっていたりします。

詳しくはテストスイートを確認してください。

例

入力: [1, [2, 6, null], [[null, [4]], 5]]

出力: [1, 2, 6, 4, 5]

jq固有の指示

この演習は、組み込みのflatten関数を使えばほぼ解決できます。ただ、この演習を最大限に活かすには、組み込みのflatten関数を使わずに自分で解いてみましょう。

ヒントを見るにはここをクリック:
  • 再帰関数が役に立つことがあります。再帰について詳しくは、再帰のレッスンで学べます。
  • type関数が助けになります。
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
jq Exercism

配列の平坦化を始める準備はできましたか?

Exercismに登録すれば、12個のコンセプト75個の演習、そして本物の人間によるメンタリングとともに、jqを学んでマスターできます。すべて無料です。