我怎样才能让我的 Javascript .map 函数更有效率?
How can I make my Javascript .map functions more efficient?
我目前正在将大量数据从 AWS OpenSearch 返回到一个名为 eventList
的数组中。数组中的每个事件都具有以下结构:
{
_source: {
"key": value
"key": value
"key": value
}
}
因此我想对其进行解构,以便 _source
成为事件数据,然后映射到 eventList 上。目前,我有两个 .map 实例,我知道这不是那么有效,所以我想知道如何组合它们。
let eventList = [
{
_source: {
tags: "xxx,yyy,zzz"
...
}
}
];
eventList = eventList.map((event) => event._source);
eventList = eventList.map((event) => {
const { tags } = event;
return {
...event,
tags: tags?.split(",") ?? [],
};
});
正如您在问题中所说,您可以将这两个 map
调用结合起来:
eventList = eventList.map(({_source}) => (
..._source,
tags: _source.tags?.split(",") ?? [],
));
我在参数列表中使用了解构,但如果你不想的话,你不必这样做:
eventList = eventList.map((event) => (
...event._source,
tags: event._source.tags?.split(",") ?? [],
));
有一百种不同的写法,但你明白了。
实际上,我们可以进一步解构:
eventList = eventList.map(({_source: {tags, ...rest}}) => (
...rest,
tags: tags?.split(",") ?? [],
));
但所有这些变体在性能方面应该大致相同;最大的胜利是只有一个 map
.
我目前正在将大量数据从 AWS OpenSearch 返回到一个名为 eventList
的数组中。数组中的每个事件都具有以下结构:
{
_source: {
"key": value
"key": value
"key": value
}
}
因此我想对其进行解构,以便 _source
成为事件数据,然后映射到 eventList 上。目前,我有两个 .map 实例,我知道这不是那么有效,所以我想知道如何组合它们。
let eventList = [
{
_source: {
tags: "xxx,yyy,zzz"
...
}
}
];
eventList = eventList.map((event) => event._source);
eventList = eventList.map((event) => {
const { tags } = event;
return {
...event,
tags: tags?.split(",") ?? [],
};
});
正如您在问题中所说,您可以将这两个 map
调用结合起来:
eventList = eventList.map(({_source}) => (
..._source,
tags: _source.tags?.split(",") ?? [],
));
我在参数列表中使用了解构,但如果你不想的话,你不必这样做:
eventList = eventList.map((event) => (
...event._source,
tags: event._source.tags?.split(",") ?? [],
));
有一百种不同的写法,但你明白了。
实际上,我们可以进一步解构:
eventList = eventList.map(({_source: {tags, ...rest}}) => (
...rest,
tags: tags?.split(",") ?? [],
));
但所有这些变体在性能方面应该大致相同;最大的胜利是只有一个 map
.