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

在React JS中如何检测数组是否包含指定字符串?

核心问题及修正方案

问题1:常量声明错误

你使用const声明了docId,const用于声明不可二次赋值的常量,后续修改docId的值会抛出语法错误,需要改为let声明。

问题2:数组包含判断逻辑错误

JS数组判断是否包含指定元素需要调用Array.includes()方法,你当前直接访问.contains属性并和字符串做相等判断的写法完全不生效。

修正后代码

const register = (e) => {
  e.preventDefault();
  
  let id = Math.floor(Math.random() * (99999 + 1));
  console.log(grado)
  // 修改为let声明支持二次赋值
  let docId = "fail2";
  // 用Array.includes判断数组中是否存在目标值
  if (grado.includes("Prekínder-3") || grado.includes("Prekínder") || grado.includes("Kínder")){
    docId = `PE-${id}`;
  }
  // 其余不相关代码省略
}

补充说明

如果你的多选下拉返回的grado是对象数组(即选项配置为{label: '展示文本', value: '存储值'}的格式),需要通过Array.some()方法遍历判断:

// 判断选中的选项中是否存在符合要求的年级
const hasTargetGrade = grado.some(item => {
  const val = item.value;
  return val === "Prekínder-3" || val === "Prekínder" || val === "Kínder"
})
if (hasTargetGrade) {
  docId = `PE-${id}`
}

如果需要模糊匹配任意带kínder关键字的选项,可以调整判断逻辑为:

const hasTargetGrade = grado.some(item => {
  // 转小写后判断包含,避免大小写匹配问题
  return item.value.toLowerCase().includes('kínder')
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:27:02