Javascript:array.indexOf()没有返回正确的元素索引[重复]

Posted

技术标签:

【中文标题】Javascript:array.indexOf()没有返回正确的元素索引[重复]【英文标题】:Javascript: array.indexOf() not returning correct index of elements [duplicate] 【发布时间】:2020-10-02 01:28:25 【问题描述】:

数组:

values: [5,4,4,5,6,6]

我想获取元素的索引。所以,我正在循环播放它。

values.map((val) => 
        console.log('val', value.indexOf(val));
        console.log('val of 5', value.indexOf(5));
        console.log('val of 4', value.indexOf(4));
        console.log('val of 4', value.indexOf(4));
        console.log('val of 5', value.indexOf(5));
        console.log('val of 6', value.indexOf(6));
        console.log('val of 6', value.indexOf(6));
        return value.indexOf(val);
      );

expected output0,1,2,3,4

电流输出

0
1
1
0
4
4 

我哪里出错了?

【问题讨论】:

indexOf返回item第第一次出现的索引,如果想要当前item的索引,可以使用传入.map((elem, idx) => ...)的index参数 【参考方案1】:

const values = [5,4,4,5,6,6]
const indexes = values.map((val, idx) => 
        console.log(`Index of $val is $idx`);
        return idx;
);

【讨论】:

以上是关于Javascript:array.indexOf()没有返回正确的元素索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章

IE7 Array indexOf()修复

JavaScript中的数组(Array)方法你真的了解吗?

JavaScript中的数组(Array)方法你真的了解吗?

Javascript 二维数组 indexOf

[译]如何更好的使用javascript数组

前端面试 JavaScript— JS判断数组中是否包含某个值