[{lable: 'a', key: 'a', child:[{label: 'b'}, key: 'b']},{lable: 'c', key: 'c', child:[{label: 'd'}, key: 'd']}] child里的追加成一维数组
时间: 2023-08-18 12:10:33 浏览: 76
数据库查询之后添加到二维数组
4星 · 用户满意度95%
可以使用递归函数来将多维的child数组转换为一维数组。可以按照以下步骤进行操作:
1. 创建一个空数组result,用于存储最终的一维数组
2. 遍历原始数组,对于每个元素,如果它有child子数组,就递归调用该函数来将其child数组转换为一维数组,并将返回的结果追加到result数组中
3. 如果该元素没有child子数组,就将其直接追加到result数组中
4. 返回result数组作为最终的一维数组
以下是一个示例JavaScript代码实现:
```javascript
function flatten(arr) {
let result = [];
arr.forEach(item => {
result.push(item);
if (item.child) {
result = result.concat(flatten(item.child));
delete item.child;
}
});
return result;
}
const data = [
{label: 'a', key: 'a', child: [{label: 'b', key: 'b'}]},
{label: 'c', key: 'c', child: [{label: 'd', key: 'd'}]}
];
const flattenedData = flatten(data);
console.log(flattenedData);
// 输出:[{label: 'a', key: 'a'}, {label: 'b', key: 'b'}, {label: 'c', key: 'c'}, {label: 'd', key: 'd'}]
```
注意,在递归调用之前,我们先将当前元素追加到result数组中,并且删除其child属性,以避免重复添加。
阅读全文