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

JavaScript中已赋值属性的对象报undefined错误原因排查

报错原因
  • 你定义的obj为普通对象,代码中全程以表头字段为键给obj赋值属性,从未给0这个键赋值,因此obj[0]本身就是undefined,后续访问obj[0].name自然会触发undefined相关报错。
修复方案
  1. 把forEach循环内打印语句里的obj[0]改为你需要打印的内容:如果要查看整个obj直接打印obj,如果要查看当前正在赋值的属性,改为obj[headers[i]]
  2. 把循环外的打印语句console.log('obj: ' + obj[0].name);改为console.log('obj: ' + obj.name);即可正确读取obj的name属性
修正后的完整代码
function arrayToAlaObjectOfArrays(data) {

  // 过滤掉data中返回的所有空记录(元素)
  data = data.filter(record => !record.every(col => col==''));

  let headers = data.shift(); // 取出第一条记录作为列表头

  console.log('data: ' + data);
  console.log('headers: ' + headers);

   let arrNew = data.map(record => {
    let obj = {};
    record.forEach((cell,i) => {
      obj[headers[i]] = cell;
      // 这里修改为打印当前赋值的属性,按需调整即可
      console.log('header[i]' + headers[i] + '  cell: ' + cell + ' 当前属性值: ' + obj[headers[i]]);
    });
    // 这里去掉[0]直接访问obj的name属性
    console.log('obj: ' + obj.name);
    return obj;
  });

  console.log('arrNew: ' + arrNew);

  return arrNew;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:39:03