对象数组的javascript嵌套数组

对象数组的javascript嵌套数组,javascript,arrays,Javascript,Arrays,我keepy getting TypeError:testsession.testset[0]。运动员未定义-我尝试了许多不同的方法,不可能有一个对象数组吗 var testsession={}; var testsetname={}; var testset=[]; testsession.testsetname=testsetname; testsession.testsetname=“week9”; testsession.testset=testset; testsession.tes

我keepy getting TypeError:testsession.testset[0]。运动员未定义-我尝试了许多不同的方法,不可能有一个对象数组吗

var testsession={};
var testsetname={};
var testset=[];
testsession.testsetname=testsetname;
testsession.testsetname=“week9”;
testsession.testset=testset;
testsession.testset.push(“400M”);
testsession.testset.push(“800M”);
var=[];
var Time=“49.2”;
var AthleteID=“a92”;
var-AthleteID={“AthleteID”:AthleteID,“Time”:Time};
//log(指针);
testsession.testset[0]。运动员=运动员;
testsession.testset[0]。运动员。推送(运动员)

console.log(testsession.testset[0].运动员[0])当您尝试访问
testsession.testset[0]
时,该条目是一个字符串。您可能至少希望设置
testsession.testset[0]={},然后再访问其成员。

测试集[0]是一个字符串。让它成为一个物体

var testsession = {};
var testsetname = {};
var testset = [];
testsession.testsetname = testsetname;
testsession.testsetname = "week9";
testsession.testset = testset;

//Earlier you pushed 400m directly which is a string hence causing the error later on
testsession.testset.push({distance: "400M"});
testsession.testset.push({distance: "800M"});

var athletes = [];
var Time = "49.2";
var AthleteID = "a92";
var athlete = { "AthleteID": AthleteID, "Time": Time};
//console.log(pointer);
testsession.testset[0].athletes = athletes;
testsession.testset[0].athletes.push(athlete)
console.log(testsession.testset[0].athletes[0]);

testsession.testset[0]
是一个基本值,一个字符串

因此,以下声明不会产生您可能认为具有的效果:

testsession.testset[0].athletes = athletes;
这里发生了什么?左侧的原语没有
String
属性,但JavaScript会将其强制为
String
对象,然后将该属性分配给临时
String
对象,然后该对象消失在遗忘中

所以这就像从未发生过赋值一样:
testsession.testset[0]
将保持原语值,而原语值没有属性


当您读取
运动员
属性时,同样的情况会再次发生:JavaScript将其强制为
字符串
对象,结果发现该对象没有
运动员
属性,因此您得到了
未定义的

,我认为您正在使用这样的代码

<script >

var testsession = {};
testsession.testset = [];
testsession.testset.push({testsetname:"week9"});
testsession.testset[0].list = [];

testsession.testset[0].list.push({distance:"400M"});
testsession.testset[0].list[0].athletes = [];
testsession.testset[0].list[0].athletes.push({ AthleteID:  "a92", Time: "49.2"});

testsession.testset[0].list.push({distance:"900M"});
testsession.testset[0].list[1].athletes = [];
testsession.testset[0].list[1].athletes.push({ AthleteID:  "a93", Time: "99.2"});

console.log(testsession);

</script>

"{"testset":[{"testsetname":"week9","list":[{"distance":"400M","athletes":[{"AthleteID":"a92","Time":"49.2"}]},{"distance":"900M","athletes":[{"AthleteID":"a93","Time":"99.2"}]}]}]}"