簡體   English   中英

如何使我的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM