比如一个多维数组
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'};