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

JavaScript中向对象推入数组报错:Cannot read properties of undefined

问题分析与解决

错误原因

你遇到的Cannot read properties of undefined (reading 'push')错误,核心原因是**objPicked只做了变量声明,没有初始化**。未初始化的变量默认值为undefined,而undefined不是数组类型,不存在push方法,调用自然会报错。

修正方案

方案1:将objPicked初始化为数组

如果你的需求是用objPicked存储多个类似arrPlayer的数组,直接把它初始化为空数组即可:

//global vars
var arrPlayer = [];
var objPicked = []; // 初始化空数组

$(document).ready(function() {
   arrPlayer = [{'PlayerID':3}, {'Num': '--'}, {'First': 'John'}, {'Last': 'Smith' }, {'Position': 'QB'}];

   objPicked.push(arrPlayer); // 现在可正常执行
});

方案2:推入对象内部的数组属性

如果你的真实需求是把数组存入对象的数组属性中(比如objPicked是一个包含数组的对象),需要先初始化对象及其内部的数组属性:

//global vars
var arrPlayer = [];
var objPicked = { players: [] }; // 初始化对象,内部包含空数组属性

$(document).ready(function() {
   arrPlayer = [{'PlayerID':3}, {'Num': '--'}, {'First': 'John'}, {'Last': 'Smith' }, {'Position': 'QB'}];

   objPicked.players.push(arrPlayer); // 往对象内的数组属性中push
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:35:00