1. 程式人生 > 實用技巧 >陣列長度不一樣 在對應的下邊新增空字串(用for迴圈 不要用for in語法) 針對echarts的折線圖

陣列長度不一樣 在對應的下邊新增空字串(用for迴圈 不要用for in語法) 針對echarts的折線圖

1.有兩個長度不一樣的陣列

var arr = [
  [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],
  [2,4,7]
];

2.通過getMaxIndex函式獲取到arr數組裡面某個陣列的最大長度

function getMaxIndex(arr) {
    var max = arr[0].length;
    //聲明瞭個變數 儲存下標值
    var index = 0;
    for (var i = 0; i < arr.length; i++) {
        if (max < arr[i].length) {
            max 
= arr[i].length; index = i; } } return index; }

3.通過getitemindex函式把arr裡面的陣列補齊



functiongetitemindex(arr,maxindex){
varindexarr=[];

for(variinarr){ varnewarr=[]; for(varj=0;j<arr[i].length;j++){ if(arr[i][j]!=arr[maxindex][j]){ arr[i].splice(j,0,'') newarr.push(j); } } if(arr[i].length<arr[maxindex].length){ for(vark=arr[i].length;k<arr[maxindex].length;k++){ arr[i].splice(k,0,'') newarr.push(k); } } indexarr.push(newarr); } returnindexarr; }
vargetitemindex=getitemindex(arr,maxindex); console.log(getitemindex);

得到如下:

4.目標陣列yarr

var yarr = [
  [11,22,33,44,55,66,77,88,99,100,111,122,133,144,155,166,177,188],
  [22,44,77]
]

5.在yarr的相應的下標(getitemindex)中新增空字串

for(var m in yarr){
  for(var n=0;n < getitemindex[m].length; n++){
    yarr[m].splice(getitemindex[m][n], 0, ' ');
  }
}
console.log(yarr);

得到如下:

注意:在迴圈遍歷一個二維陣列的時候不要用for in語法,要用for迴圈。不然會出現問題。(找這個bug找了幾個小時,已經哭暈在廁所 T-T)