嵌套结构最快的对象重新映射
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌套结构最快的对象重新映射相关的知识,希望对你有一定的参考价值。
假设我们有来自两个不同API的两个不同结构。每个都有不同的模式。
我们将此作为API#1的回报
[
Id: "test1",
Title: "label 1",
Children: [
Id: "test2",
Title: "label 2",
Children: [
Id: "test3",
Title: "label 3"
]
]
]
我需要将其转换为以下方案:
[
value: "test1",
label: "label 1",
children: [
value: "test2",
label: "label 2",
children: [
value: "test3",
label: "label 3"
]
]
]
到目前为止,我已经提出了这种方法:
const transformItem = ( Id, Title, Children ) => (
value: Id,
label: Title,
children: Children ? transformData(Children) : null
);
const transformData = arr => arr.map(item => transformItem(item));
// Process data
const DataForApi2 = transformData(DataFromApi1);
[根据我执行的有限基准测试和我所知道的,在V8(占我们用户群的95%以上)中,这看起来足够快,因为我没有更改任何数据结构(完整的过热对象并保留了性能)并在范围内使用所有内容,以免浪费内存。如果每个客户端加载该应用程序仅执行一次(仅在登录后的第一次),则似乎具有线性复杂度,并且还不错。
假设我们有来自两个不同API的两个不同结构。每个都有不同的架构。我们从API#1返回此信息[ID:“ test1”,Title:“ label 1”,...
答案
就运行时而言,这是正确的,这可能是我们可以通过O(n)
获得的最快的速度。
以上是关于嵌套结构最快的对象重新映射的主要内容,如果未能解决你的问题,请参考以下文章