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

JavaScript如何根据指定索引从二维数组中获取对应位置的子数组

问题分析

你的现有代码核心取值逻辑没有本质错误,但存在3个明显问题:

  • return语句后的console.log(result)是永远不会执行的死代码:JS函数执行到return就会直接退出,后续逻辑全部不会触发。
  • 存在冗余代码:提前声明空数组result再做赋值返回属于多余操作,没有实际作用。
  • 缺少边界校验:如果传入的索引超出数组范围、或者第一个入参不是合法二维数组,代码会直接返回undefined,没有容错处理。
修正方案

直接精简逻辑,补全基础校验,把日志逻辑移到return之前即可,修正后代码如下:

const input = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
const index = 1;

function grab(input, index) {
  // 入参合法性校验
  if (!Array.isArray(input) || !Number.isInteger(index) || index < 0 || index >= input.length) {
    return []; // 非法入参可根据业务需求选择抛出错误或返回默认值
  }
  const result = input[index];
  console.log('获取到的子数组:', result);
  return result;
}

// 测试调用
grab(input, index); // 控制台打印[4,5,6],返回值也为[4,5,6]

如果不需要日志打印和入参校验,最精简的写法可以直接写成:

const grab = (input, index) => input[index];

调用后即可直接拿到对应索引的子数组,传入示例参数时返回值就是预期的[4,5,6]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:54:21