为了账号安全,请及时绑定邮箱和手机立即绑定

js 怎么取出一个数组中相同值的下标?

js 怎么取出一个数组中相同值的下标?

萧十郎 2019-03-13 17:14:57
var arr = [1,2,3,4,1] 怎么取出相同值的下标啊?,也就是取出第一个和最后一个的下标
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

Array.indexOf


查看完整回答
反对 回复 2019-03-23
?
HUH函数

TA贡献1836条经验 获得超4个赞

个人觉得问题不够明确:

  1. 重复几次?

  2. 重复项的值是否为number类型?

如果是题目中所说的

var arr = [1,2,3,4,1]

也就是每一项都是数字,并且最多重复两次。

那么可以试试下面的代码:

let a = [1,2,3,4,1];

//对a[a[i]-1]的值取反,则不重复的数为负数,重复的数为正数

for(let i = 0;i<a.length;i++){

    let index = Math.abs(a[i])-1;

    a[index] = -a[index];

}

//a = [1, -2, -3, -4, 1]

//遍历输出大于0的项的下标

for(let i = 0;i<a.length;i++){

    if(a[i]>0){

        console.log(i)

    }

}

时间复杂度O(n)。

查看完整回答
反对 回复 2019-03-23
  • 3 回答
  • 0 关注
  • 1886 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信