欢迎光临
我的个人博客网站

lodash函数库 — chunk

loadsh函数库中的 chunk 函数采用 typescript 语法重写.

chunk 函数
将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。
如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。

/**  *  * 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。  * 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。  *  * @param array 需要处理的数组  * @param size 每个数组区块的长度  * @returns {Array<Array<T>>}  * @example  *  * chunk(['a', 'b', 'c'], 2)  * // => [['a', 'b'], ['c']]  *  * chunk(['a', 'b', 'c','d'], 2)  * // => [['a', 'b'], ['c','d']]  */ const chunk = <T>(array: Array<T>, size = 1): Array<Array<T>> => { 	// 边界检测 	// 需要考虑块长度小于1和空数组 	const length = array.length; 	if (!length || size < 1) return [];  	let index = 0; // 处理数组起始位 	let resindex = 0; // 新数组起始位 	const result = new Array<Array<T>>(Math.ceil(length / size)); 	while (index < length) { 		result[resindex++] = array.slice(index, (index += size)); // size 为步长值 	} 	return result; };  export default chunk;  
import chunk from "../src/chunk";  const arr = [1, 2, 3, 4, 5, 6]; const n = chunk(arr, 3); console.log(n); // [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]  const arrs = ["a", "b", "c"]; const n1 = chunk(arrs, 2); console.log(n1); // [ [ 'a', 'b' ], [ 'c' ] ]  const arre = [] as Array<string>; const n2 = chunk(arre, 2); console.log(n2); // [] 

个人作品

ip定位查询浏览器插件
老虎优惠券浏览器插件

赞(0) 打赏
未经允许不得转载:张拓的天空 » lodash函数库 — chunk
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏