You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组中indexOf查找字符串'2'正常,查找数字2返回-1,原因何在?

问题原因分析

JavaScript 的 indexOf() 方法在匹配元素时使用**严格相等(===)**规则,会同时校验值和数据类型是否完全一致。

你的情况具体是:

  • 数组中索引为3的元素是字符串类型的 "2",所以用字符串"2"查找时能精准匹配,返回结果3。
  • 变量day = 2是数字类型,调用array.indexOf(day)时,数字2和数组里的字符串"2"类型不匹配,严格相等比较不通过,因此返回-1(代表未找到目标元素)。

解决办法

  • 将数字变量转为字符串后再查找:array.indexOf(String(day))
  • 统一数组元素类型为数字,确保数组里的1至20都是数字类型,此时用数字2查找就能正常匹配到对应位置

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:50:04