在項(xiàng)目中使用通常會(huì)遇到一個(gè)數(shù)組需要分多行顯示,類似于瀑布流的方式,在這種場景下我們需要對一維數(shù)組進(jìn)行轉(zhuǎn)換為二維數(shù)組。我們可以使用lodash的chunk方法進(jìn)行轉(zhuǎn)換。
- 基本用法
_.chunk(array, [size=1])
- 解析
一起來看一下lodash如何實(shí)現(xiàn)的chunk方法。- 首先是引入三個(gè)函數(shù)和定義了兩個(gè)方法
// 截取數(shù)組的起始部分和結(jié)束部分之間的數(shù)組并返回 var baseSlice = require('./_baseSlice'), // isIterateeCall = require('./_isIterateeCall'), toInteger = require('./toInteger'); // 聲明獲取最大值和最小值的方法 var nativeCeil = Math.ceil, nativeMax = Math.max;- 然后就是主要方法
function chunk(array, size, guard) { if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { size = 1; } else { size = nativeMax(toInteger(size), 0); } // 非空判斷 var length = array == null ? 0 : array.length; if (!length || size < 1) { return []; } var index = 0, resIndex = 0, // 生成外圍數(shù)組 result = Array(nativeCeil(length / size)); // 遍歷生成數(shù)組的每一項(xiàng) while (index < length) { result[resIndex++] = baseSlice(array, index, (index += size)); } return result; }