Array.indexOf 不敏感的数据类型

Array.indexOf insensitive data type

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

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

它们都是 returned 2,但是当我尝试这些代码时

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

他们都returned -1。我也想要 return 2,请问怎么办?感谢您的帮助、时间和精力!

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

var n = 3;

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

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

val = true

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