佈局寫多了,總會踩上幾個坑,面對有奇偶需求的佈局而服務端數據只返回一維數組列表時,flex佈局幫不上忙的時候,有沒有一種抓耳撓腮的感覺呢!
這種狀態下,前端就得發揮一下啦!
來看一下何謂奇偶佈局吧!圖片有點難看,將就着看,能理解就行啦,畢竟是截圖工具畫的~~~
如圖所示,類似這種結構,如果使用flex來佈局,那需要好好想想,對吧!
那就換一種思路,佈局不直接,那就改數據結構唄!
如圖所示,每一行都是一個數組,循環行就ok啦,這其中的規律即爲奇行爲3,偶爲2,所以呢,把服務端返回的一維數組轉成二維不就搞定了嗎?
那如何傳呢?按大千世界,無奇不有的定律,方法肯定是有很多的啦,在此提供一個相對簡單的方法,代碼如下:
注意的點:此方法是通過會修改原始數組出發來達到效果的,請在使用的時候千萬注意,另外,這個針對簡單數據類型問題不大,如果是引入類型的話呢,就要考慮淺拷貝的後遺症哦
// m奇數行數組顯示個數 n偶數行數組顯示個數 arr 數組
function demo (arr, m, n) {
var temp = []
for(var i = 0; i < arr.length -1; i++) {
var na = arr.splice(0, (m + n))
var bm = a.slice(0,m)
var bn = a.slice(m,na.length)
temp.push(bm) temp.push(bn)
}
console.log(temp)
}
再次提醒,一定要注意以上提到的 隱形 bug 哦