Array.indexOf不敏感的数据类型

时间:2017-05-25 04:53:33

标签: javascript types indexof

我一直在谷歌Chrome控制台中使用Array.indexOf,我尝试了这些代码

[1,2,3].indexOf(3);
[1,2,"3"].indexOf("3");

他们都返回2,但是当我尝试这些代码时

[1,2,"3"].indexOf(3);
[1,2,3].indexOf("3");

他们都返回-1。我想要它也返回2,我怎么能这样做?感谢您的帮助,时间和精力!

2 个答案:

答案 0 :(得分:5)

您可以使用Array.prototype.findIndex()==运算符



var n = 3;

console.log(
  [1,2,3].findIndex(el => el == n)
, [1,2,"3"].findIndex(el => el == n)
)




答案 1 :(得分:4)

扩展guest271314的帖子:将两个值都转换为字符串。这也适用于数字和字符串



val = true

console.log([1,2,"true"].findIndex(item => String(item) === String(val)))