在一次实现需求过程中,发现php的array_chunk实现数组分块很方便,那么也想在javascript中看看有没有现成的api可以直接拿来用。于是有了今天的一篇大家口中的水文,作为笔记📒。
在javascript中,没有直接与php中的array_chunk函数等效的内置方法。那么接下来实现以下Javascript中的类似的array_chunk()看看。
Lodash 库
其实,Lodash库可以使用chunk函数来切割数组。
首先确保已经安装了Lodash库,并将其引入到你的项目中。使用的示例如下:
const _ = require('lodash')
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const chunks = _.chunk(arr, 3)
console.log(chunks) // [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
以上是将数组分成大小为3的每个小块。
js 自己手写实现
把数组按数目分块。想着是尽量最少代码实现该功能。
const chunk = (arr, size) =>
Array.from({ length: Math.ceil(arr.length / size) }, (_, index) =>
arr.slice(index * size, index * size + size)
);
const arr = Array.from({ length: 10 }, (_, index) => index + 1);
const chunks = chunk(arr, 3);
得到的chunks如下:
你可能还有自己的实现想法,没关系,实现了就行。
总结
越来越懒,越来越发现自己能自动能复用就复用,代码希望是越少代码能实现同样功能越好(当然也得考虑代码运行的速度)。并没有觉得不妥,懒挺正常的,能解放双手、自动、且尽量避免循环重复做一些流程的东西最好。
欢迎任意留言,新年快乐✨