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

JS遍历嵌套数组出现undefined及filter调用报错问题咨询

问题根源

你出现异常的核心原因是对Object.entries()返回的结构理解有误:
Object.entries()处理对象后返回的二维数组中,每一个内层子数组(也就是你代码里的row)固定只有两个元素,第一个是原对象的键(字符串类型),第二个是原对象对应键的值。你对row做了全量遍历,就会把字符串类型的键也拿出来尝试访问A属性,字符串自然不存在A属性,所以每次遍历都会先输出对象的A属性值,再输出字符串键访问A得到的undefined。

filter报错原因

你尝试对col['A']调用filter方法,首先col['A']在遍历到字符串键的时候返回的是undefined,调用undefined的方法自然会抛出类型错误;其次就算是正常取到的A属性值是字符串类型,也不存在数组才有的filter方法,逻辑完全不成立。

正确访问方式

你不需要双层遍历内层的row,直接取每个row的第二个元素(索引为1)就是你要的目标对象,访问对应属性即可:

me_data.forEach(function(row){
  // 直接取row[1]就是你要的包含A属性的对象
  const targetObj = row[1]
  console.log(targetObj.A)
})

如果确实需要兼容不确定的结构,可以加类型判断再访问:

me_data.forEach(function(row){
  row.forEach(function(col){
    // 先判断当前元素是对象且不是null,再访问A属性
    if(typeof col === 'object' && col !== null) {
      console.log(col.A)
    }
  })
})

内容的提问来源于stack exchange,提问作者F. Certainly.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:15:04