gpt4 book ai didi

javascript - 如何最有效地在 javascript 中仅包含两种类型的项目 0、1 的数组中查找项目的索引

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:11 26 4
gpt4 key购买 nike

比如说你有

var arr = [0,0,0,1,0,1,1,0,0,0,1];

而你想根据第一个0找到第一个1的位置。arr.indexOf 会直接解决问题,但我不确定它是否对数组中的每个项目进行线性比较?二进制搜索不起作用,因为如果您排序然后查找元素,您会丢失索引......任何其他方式都可以到达第一个 1 并说啊哈!索引 3,一次不去一个元素?

最佳答案

它从数组的开头迭代搜索。

规范的相关部分:

重复,同时 k < len

  • k当前是调用 [[HasProperty]] 的结果O的内部方法带参数 ToString(k) .
  • 如果k现在为真,那么
    • 令 elementK 为使用参数 ToString(k) 调用 O 的 [[Get]] 内部方法的结果.
    • 将严格相等比较算法应用于 searchElement 的结果相同和 elementK .
    • 如果相同,返回k .
  • 增加k 1.

来源:http://es5.github.io/#x15.4.4.14

是的,一旦无法保证数组结构 - 没有比线性搜索更有效的了。

虽然我不确定如何为缺少某些东西做出正式证明。

关于javascript - 如何最有效地在 javascript 中仅包含两种类型的项目 0、1 的数组中查找项目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947998/

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