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

jQuery/JS如何查找包含指定值的子数组并向其中push新元素

错误原因
  • 你的代码subarr = [].indexOf(val) > -1是对空数组执行查找,永远返回false,该布尔值作为数组索引时会被转为数值0,最终会错误操作第一个子数组,完全没有实现查找含目标值子数组的逻辑
  • 缺少遍历外层数组的步骤,你没有逐个检查每个子数组是否包含目标值val,自然无法定位到要操作的子数组
适配for循环的修复代码
var add = "purple";
var val = "white";

var arr = [
    ["blue","green","brown"],
    ["white","gray","black"],
    ["yellow","pink","red"]
];

// 遍历所有子数组
for (let i = 0; i < arr.length; i++) {
    // 检查当前子数组是否包含目标值
    if (arr[i].includes(val)) {
        arr[i].push(add);
        // 仅存在一个符合条件的子数组时可加break终止循环,提升性能
        break;
    }
}

如果需要兼容低版本浏览器,把includes替换为indexOf(val) > -1即可,功能完全一致,执行后得到的arr就和你预期的输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:01