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

嵌套数组中使用indexOf查找元素返回错误结果的问题

问题排查与解决

问题根源

你写的两个函数里,数组v的元素都是子数组(比如[2.0]、["One"]),但你用indexOf查找的是单个值(2.0、"One")。indexOf采用严格相等(===)判断匹配,子数组和单个值类型完全不同,自然找不到匹配项,所以会执行else分支。

解决方法

要检查子数组中是否包含目标值,可以用数组的some()方法,它会遍历数组,只要有一个元素满足条件就返回true。

修改后的第一个函数

function search (){
  const v = [[2.0], [3.0], [4.0], [5.0]]
  if(v.some(item => item[0] === 2.0)){
    Logger.log ('if')
  }else{
    Logger.log('else')
  }
}

修改后的第二个函数

function search (){
  const v = [["One"], ["two"], ["three"], ["four"]]
  if(v.some(item => item[0] === "One")){
    Logger.log ('if')
  }else{
    Logger.log('else')
  }
}

补充说明

如果子数组可能包含多个元素,而你想检查目标值是否存在于任何子数组的任意位置,可以把判断条件改成item.includes(目标值):

// 子数组含多个元素时的通用写法
if(v.some(item => item.includes("One"))){
  // 执行逻辑
}

内容的提问来源于stack exchange,提问作者A good person

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:45:43