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

调用DataClass的createData方法后获取length报错的问题及解决

解决createData方法未返回值导致console.log(testA.length)报错的问题

嘿,我一眼就瞅出你这儿的问题了——你的createData方法漏掉了返回语句!

当你实例化DataClass并调用createData方法时,因为方法没有返回任何值,你赋值得到的testA其实是undefined。这时候你去访问undefined的length属性,浏览器或者Node.js肯定会抛出错误,毕竟undefined根本没有这个属性嘛。

修复后的代码

只需要在createData方法里加上return chartData就行,把处理好的数组返回出去:

class DataClass{
 constructor(lib, zero){
 this.lib = lib;
 this.zero = zero;
 }
 createData(backendData) {
 const test = backendData[0]['data'].points
 const chartData = test.map((rf) => {
 return new DataClass(rf.lib, rf.zero)
 })
 // 补上return语句,返回处理后的数组
 return chartData
 }
}

测试验证

现在你再运行下面的代码,console.log(testA.length)就能正常输出1了:

const testData = [{ 'data':{ 'points':[{ 'lib':0.01, 'zero':2.00 }] } }]
const dataInstance = new DataClass()
const testA = dataInstance.createData(testData)
console.log(testA.length) // 输出:1

这种小疏忽其实挺常见的,写方法的时候很容易专注于处理逻辑而忘记返回结果,下次记得多检查一下方法的返回值哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:39:34