gpt4 book ai didi

javascript - 我应该使用 delete 和 findIndex 还是 filter 从 immutable.js 列表中删除和删除项目?

转载 作者:行者123 更新时间:2023-11-30 00:05:24 26 4
gpt4 key购买 nike

我正在考虑如何最好地使用 Immutable.js。我看到了一些这样的代码:

state.update('something', something =>
something.delete(
something.findIndex(x => x.id === 1)
)
)

在我看来,使用过滤器可以将这段代码编写得更简洁:

state.update('something', something =>
something.filter(x => x.id !== 1)
)

它甚至可以是无点的:

propEq = k => v => x => x[k] === v
state.update('something', propEq('x', 1))

这里有任何重要的性能权衡吗?

如果 delete + findIndex 明显更高效,是否有一种干净、无意义的方式来编写这段代码?

最佳答案

我喜欢您的过滤方法。我可能会调整谓词以使用 filterNot() ,虽然这只是个人品味最重要的是:

state.update('something', something =>
something.filterNot(x => x.id === 1)
)

唯一的性能问题是过滤意味着您必须遍历整个列表,无论如何。这对于较小的列表来说不是什么大问题,但对于较大的列表,性能下降可能会很明显。

例如,在包含 10,000 个项目的列表中,findIndex() 可能不会迭代 10,000 次,而 filter() 将始终迭代 10,000 次。

所以我会坚持使用更简洁的代码,如果 filter() 无法缩放,则切换到 findIndex()delete()与您的应用程序数据。

关于javascript - 我应该使用 delete 和 findIndex 还是 filter 从 immutable.js 列表中删除和删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727295/

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