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

如何访问嵌套在对象数组中的指定键值对?

从多层嵌套结构中获取指定值的解决方案

直接访问已知位置的目标值

如果明确目标值的具体位置,可通过链式访问直接获取:

// 获取Max(位于键40对应数组的第1个元素)
const maxName = nested[40][0].name; // 或 nested['40'][0].name
console.log(maxName); // "Max"

// 获取Lucas(位于键50对应数组的第3个元素)
const lucasName = nested[50][2].name; // 或 nested['50'][2].name
console.log(lucasName); // "Lucas"

利用你尝试过的方法(Object.values/keys/entries)取值

你调用Object.values(nested)得到的是外层对象所有值组成的数组(包含两个子数组),可通过数组索引继续定位:

const values = Object.values(nested);
// 从第一个子数组(对应键40)取第一个元素的name
console.log(values[0][0].name); // "Max"
// 从第二个子数组(对应键50)取第三个元素的name
console.log(values[1][2].name); // "Lucas"

通用搜索方法(未知目标位置时)

如果不清楚目标值所在的具体位置,可遍历所有嵌套元素查找:

function getTargetName(nestedObj, target) {
  // 遍历外层对象的所有数组
  for (const arr of Object.values(nestedObj)) {
    // 在数组中查找name匹配的对象
    const match = arr.find(item => item.name === target);
    if (match) return match.name;
  }
  return null; // 未找到时返回null
}

// 使用示例
console.log(getTargetName(nested, "Max")); // "Max"
console.log(getTargetName(nested, "Lucas")); // "Lucas"

你之前的无效代码说明

  • const [, , {name}] = nested;:解构赋值仅适用于数组或可迭代对象,普通对象无法直接解构,因此无效。
  • console.log(${Object.values[40]});:Object.values是方法,需传入nested调用,且返回数组的索引是0、1而非40,写法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:47:23