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里面的数组补齐
function getitemindex(arr,maxindex) {
var indexarr = [];
for(var i in arr){
var newarr= [];
for(var j=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(var k=arr[i].length;k<arr[maxindex].length; k++ ){
arr[i].splice(k,0,' ')
newarr.push(k);
}
}
indexarr.push(newarr);
}
return indexarr;
}
var getitemindex = 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)