今天一個朋友面試遇到了一個題目,然后看起來很簡單,寫的時候發現寫不好
題目是這樣的,給一個二位數組
// Tips 長度都是不固定的
var arr = [
[1,2,3,4],
[5,6,7,8,9,10],
[11,12],
[13,14,15,16,17,18]
]
輸出這種格式:
1,5,11,13,2,6,12,14,3,7,12 ....
然后,每秒輸出一個下標。
我一看這么簡單,寫了之后發現坑不少,然后寫了好久才寫出來。
不解釋,放代碼:
var arr = [
[1,2,3,4],
[5,6,7,8,9,10],
[11,12],
[13,14,15,16,17,18]
]
// 單列運行
var arrRuning = false
// 計數
var losn = -1
// 求最長的數組
var maxLength = 0
arr.forEach(function(e){
e.length > maxLength
? maxLength = e.length
: ''
})
for(var k = 0; k <= maxLength; k++){
arr.forEach(function(e,i,a){
if(!arrRuning){
// 二維數組的長度
this.length = e.length
}
arrRuning = true
losn++
;(function(n,e,k){
window.setTimeout(function(){
if(e[k]){
console.log( e[k] )
}
},1000*n)
})(losn,e,k);
})
}
--END--