gpt4 book ai didi

javascript - Immutable.js .map 在一次迭代中返回多个元素

转载 作者:行者123 更新时间:2023-11-30 21:08:56 25 4
gpt4 key购买 nike

我正在尝试使用 Immutable 的 .map()迭代“段”的 List()

每个片段可能跨越多天,如果是这样的话,我想将这个片段分成多个片段,每个片段只跨越一天。

我似乎有基本的逻辑:

const segmentedList = nonSegmentedList.map((segment) => {
if (spansMultipleDays(segment)) {
return segmentByDay(segment) // returns a list
} else {
return segment
}
})
return segmentedList

我的问题是 .map 的返回将返回一个段列表,并将它们填充到单个 segmentedList 列表项中。例如,假设 segment1 和 segment3 跨越一天,而“segment2”跨越三天。

我的返回值看起来像这样:

[
{segment1},
[{segment2a}, {segment2b}, {segment2c}],
{segment3}
]

然而,这是我们想要的:

[
{segment1},
{segment2a},
{segment2b},
{segment2c},
{segment3}
]

Immutable's flatMap函数听起来像我正在寻找的东西,但是用 flatMap 替换上面代码片段中的 .map 产生了相同的结果。

最佳答案

一个选择是简单地 flatten()集合,然后映射它。

const collection = Immutable.fromJS([1, 2, [3, 4, 5], 6])
collection.flatten().map(item => console.log(item))
<script src="https://unpkg.com/immutable"></script>

关于javascript - Immutable.js .map 在一次迭代中返回多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46331215/

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