如何基于JavaScript中另一个数组的索引从数组中选择元素?

纳乔卡布

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

a = [10,20,30,40]
b = [1,3]
a.filter((x,i) => b.includes(i))
// [20, 40]
弗里曼·兰达(Freeman Lambda)

另一种方法是b.map(aIndex => a[aIndex])如果ba更短,也可能会更快。但是,如果其中的索引b不属于a,则最终会undefined在数组中出现“孔”。

编辑

稍微Array.includes看一下,它将对未排序的数组O(n)运行如果我们说A = a.lengthB = b.length,那么您从问题中得到的解决方案应在O(A * B)中运行第二个解决方案(带有地图)将在O(B)中运行要修复undefined孔,可以添加.filter(element => typeof element !== 'undefined')最终的解决方案将是b.map(i => a[i]).filter(e => typeof e !== 'undefined')现在它在O(2 * B)中运行,它应该仍然比O(A * B)更好

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从另一个数组中的多个元素中选择数组中的元素

如何从另一个数组中的一个数组中选择一个值?

基于Javascript中的另一个数组删除数组中的元素

如何基于存储在另一个数组中的索引获取数组的项目

PHP根据从另一个数组中选择的元素消除数组元素

根据来自另一个数组的argmax的索引从数组中选择值

如何在另一个数组 JavaScript 中循环索引数组

如何将一个数组的元素与Javascript中另一个数组的索引进行比较?

从数组中选择与php中另一个数组中的条件匹配的数据

如何基于匹配索引的另一个数组更新数组?

从数组中选择数据并在段落中显示来自另一个数组的数据 - javascript

基于另一个数组索引在 PHP 中对数组进行排序

如何在perl中使用grep从一个数组到另一个数组中选择元素?

如何基于R中另一个数组的信息在数组中添加元素?

在另一个数组javascript中找到数组元素的索引

根据另一个数组中的索引获取数组中的元素

如何基于另一个数组元素更新数组的所有对象

numpy:对于一个数组中的每个元素,在另一个数组中查找索引

根据另一个数组中的值对numpy数组的选择索引执行操作

如何使用数组元素作为循环中另一个数组的索引?

如何使用数组元素作为另一个数组的索引

如何相对于另一个数组上的索引替换数组元素

查找数组中而不是另一个数组中最小元素的索引(Matlab)

如何在Javascript中获取另一个数组中某个数组元素的数字出现次数?

查找一个数组比另一个数组中的元素大的索引

如果元素本身位于另一个数组中,如何在元素的特定索引处插入元素?

如何选择另一个数组中的元素并将它们放在 Python 中的数组外部?

如何在另一个数组中存储数组的对象元素个数?

基于javascript中的另一个数组对数组对象进行排序