gpt4 book ai didi

javascript - 如何根据 JavaScript 中另一个数组的索引从一个数组中选择元素?

转载 作者:数据小太阳 更新时间:2023-10-29 03:49:05 28 4
gpt4 key购买 nike

这行得通,但我想知道是否有更好的方法来按索引过滤:

a = [10,20,30,40]
b = [1,3]
a.filter((x,i) => b.includes(i))
// [20, 40]

最佳答案

另一种方法是 b.map(aIndex => a[aIndex])。如果 ba 短,这也可能更快。但是,如果 b 中有不属于 a 的索引,您最终会在数组中得到 undefined“空洞”。

编辑

仔细查看 Array.includes,对于未排序的数组,它看起来会在 O(n) 中运行。如果我们说 A = a.lengthB = b.length,您的问题解决方案应该在 O(A * B) 内运行.第二个解决方案(带 map )将在 O(B) 内运行。要修复 undefined 漏洞,您可以添加一个 .filter(element => typeof element !== 'undefined')。最终的解决方案将是 b.map(i => a[i]).filter(e => typeof e !== 'undefined')。这现在在 O(2 * B) 中运行,应该仍然比 O(A * B) 好。

关于javascript - 如何根据 JavaScript 中另一个数组的索引从一个数组中选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43708721/

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