JavaScript 階層構造のデータの加工
以下のような階層構造のデータがある。
const data = [
{
name: 'A',
children: [
{
name: 'AA1',
flag: false,
children: [
{
name: 'AAA1',
flag: false,
children: [],
},
{
name: 'AAA2',
flag: false,
children: [],
}
],
}
],
flag: false,
}
];
すべての flag を true に変えたい。
汎用的な処理を作る。
// children があること前提
const mapHierarchy = (hierarchy, f) => {
return hierarchy.map(data => ({
...f(data),
children: mapHierarchy(data.children, f)
}));
};
mapHierarchy に渡す関数の定義。
const makeFlag = data => {
return {
...data,
flag: true,
}
};
実行。
const result = mapHierarchy(data, makeFlag);
console.log(result);
最近のコメント