js多维数组的问题,新人小白求教啊!

比如一个多维数组

var arr = [["A","B","C"],[1,2,3],["X","Y","Z"],[7,8,9]];

如果我想单独在"A","B","C"后面加个D,该怎么写?
用arr[0].push("D");可以解决

但是:
var arr = [];
for(var i=0;i<10;i++){
arr.push = ({ 'tq':{'id':i , 'name':'A'} , 'tw':{'id':i , 'name':'B'} , 'te':{'id':i , 'name':'C'}});
if(i == 5){
arr[0].push({ 'tr':{'id':i , 'name':'D'} }); //这里报错 "arr[i].push is not a function"
}

求解

arr这里已经是一个对象了,不是数组,arr[0]这就已经没有定义了。你要把对象转为数组才行。

arr.push = ({ 'tq':{'id':i , 'name':'A'} , 'tw':{'id':i , 'name':'B'} , 'te':{'id':i , 'name':'C'}}); 这里错了

你的数组第二维放的是对象,不是数组,对象没有push()方法,为对象添加属性直接用arr[0].tr={'id':i , 'name':'D'};

var arr = [];
for(var i=0;i<10;i++){
    arr.push({ 'tq':{'id':i , 'name':'A'} , 'tw':{'id':i , 'name':'B'} , 'te':{'id':i , 'name':'C'}});
    if(i == 5){
        arr[0].tr={'id':i , 'name':'D'};
    }
}

arr[0].push({ 'tr':{'id':i , 'name':'D'} });

改成

arr[0]. tr = {'id':i , 'name':'D'};