var tmp_arr_1 = new Array();
var tmp1 = {'type':1,'plan_num':200};
tmp_arr_1.push(tmp1);
tmp_arr_1.push(tmp1);
console.log(tmp_arr_1);
tmp_arr_1[0]['type'] = '-----';
console.log('--變化一個后--');
console.log(tmp_arr_1);
return;
由於數組是引用變量 ,進行引用賦值 , 其實還是原來的數組 , 也就是說 ,我賦給tmp_arr_1,其實一直都是同一個地址里存的同一個數組 ,
所以 ,最后一次修改payArr 后 ,每個引用都一起改掉了 , 那么怎么解決呢 ?
dataList[i].payArr = JSON.parse(JSON.stringify(payArr)) ;
原理就是先把數組轉換成字符串再轉換成對象 ,這樣會新分配一塊內存新創建一個對象 ,
這是一個基礎坑
var tmp_arr_2 = new Array();
var tmp1 = {'type':1,'plan_num':200};
tmp_arr_2.push(JSON.parse(JSON.stringify(tmp1)));
tmp_arr_2.push(JSON.parse(JSON.stringify(tmp1)));
console.log(tmp_arr_2);
tmp_arr_2[0]['type'] = '-----';
console.log('--變化一個后--');
console.log(tmp_arr_2);
return;

