gpt4 book ai didi

javascript - RxJs 将对象数组移动到根数组

转载 作者:行者123 更新时间:2023-11-28 14:37:26 25 4
gpt4 key购买 nike

我通过Observable获取以下数据

[
0: {id: "12321", itemName: "Item 1", category: "All"},
1: [
0: {id: "423423", itemName: "Sub Item 1", category: "subcat"},
1: {id: "413212", itemName: "Sub Item 2", category: "subcat"}
],
2: {id: "65655", itemName: "Item 2", category: "All"},
3: {id: "87877", itemName: "Item 3", category: "All"},
4: [
0: {id: "354345", itemName: "Sub Item 1", category: "subcat"},
1: {id: "123434", itemName: "Sub Item 2", category: "subcat"},
2: {id: "765767", itemName: "Sub Item 3", category: "subcat"},
3: {id: "854643", itemName: "Sub Item 4", category: "subcat"},
]
]

我正在尝试将array 中的所有object 移动到root 数组。预期结果是

[
0: {id: "12321", itemName: "Item 1", category: "All"},
1: {id: "423423", itemName: "Sub Item 1", category: "subcat"},
2: {id: "413212", itemName: "Sub Item 2", category: "subcat"}
3: {id: "65655", itemName: "Item 2", category: "All"},
4: {id: "87877", itemName: "Item 3", category: "All"},
5: {id: "354345", itemName: "Sub Item 1", category: "subcat"},
6: {id: "123434", itemName: "Sub Item 2", category: "subcat"},
7: {id: "765767", itemName: "Sub Item 3", category: "subcat"},
8: {id: "854643", itemName: "Sub Item 4", category: "subcat"},
]

这是数据在控制台上的显示方式

Data Sample

以下是我迄今为止所尝试过的。

lstCategories: Observable<any>;

this.lstCategories = .....
.flatMap(records => Observable.combineLatest(records))
.map(da => {
return da.map(mda => {
//if it is array then map each object in array.
if(mda.length){
return mda.map(smda => {
return Observable.of(smda);
})
}else {
return mda;
}
})
});

console.log(da) 即第一个 map 显示我正在获取的数据类型。我正在检查数组中每个元素长度并将其映射回来。

我在这里缺少什么?

最佳答案

根据图像,您有一个对象数组和数组。您可以使用 [].concat(...data) 将其展平。将 array#concat 与展开语法结合使用。

var data = [{id: "12321", itemName: "Item 1", category: "All"}, [{id: "423423", itemName: "Sub Item 1", category: "subcat"}, {id: "413212", itemName: "Sub Item 2", category: "subcat"}],{id: "65655", itemName: "Item 2", category: "All"}, {id:"87877", itemName: "Item 3", category: "All"}, [{id: "354345", itemName: "Sub Item 1", category: "subcat"}, {id: "123434", itemName: "Sub Item 2", category: "subcat"}, {id: "765767", itemName: "Sub Item 3", category: "subcat"}, {id: "854643",itemName: "Sub Item 4", category: "subcat"}]],
result = [].concat(...data);
console.log(result);

关于javascript - RxJs 将对象数组移动到根数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49407067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com