形状が不明なネストされた配列があります。次に例を示します。
["head","val1","val2","val3",
["head2","val4","val5",
["head3","val6","val7",
["head4", "val8"],"val9"]],
["head5", "val10", "val11"]
]
配列はすべて2以上の長さです。配列には、他の配列をいくつでも含めることができ、他の配列もいくつでも含めることができます。すべての値は文字列または配列のいずれかです。
これを次の形の単一のオブジェクトに変換しようとしています。
{"head": ["val1","val2","val3",
{"head2": ["val4","val5",
{"head3": ["val6","val7",
{"head4": ["val8"]}, "val9"]},
{"head5": ["val10", "val11"]}
]}
基本的に、各配列は、最初の値がキーで、配列の残りの部分が値であるオブジェクトに変換する必要があります。使ってみましたが、うまくいきませんreduce
。
このようなもの?
function convert(arr) {
if (arr instanceof Array) {
const [key, ...values] = arr;
return { [key]: values.map(convert) };
} else {
return arr;
}
}
const test = ["head","val1","val2","val3",
["head2","val4","val5",
["head3","val6","val7",
["head4", "val8"],"val9"]],
["head5", "val10", "val11"]
];
console.log(convert(test));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加