Разбить массив на куски означает разделить его на более мелкие подмассивы заданного размера. Вот несколько методов, которые можно использовать для достижения этой цели на различных языках программирования:
-
Python:
def chunk_array(array, size): return [array[i:i+size] for i in range(0, len(array), size)] -
JavaScript:
function chunkArray(array, size) { const chunks = []; for (let i = 0; i < array.length; i += size) { chunks.push(array.slice(i, i + size)); } return chunks; } -
Рубин:
def chunk_array(array, size) array.each_slice(size).to_a end -
PHP:
function chunkArray($array, $size) { return array_chunk($array, $size); } -
Java:
import java.util.ArrayList; import java.util.List; public class ArrayChunker { public static List<int[]> chunkArray(int[] array, int size) { List<int[]> chunks = new ArrayList<>(); for (int i = 0; i < array.length; i += size) { int[] chunk = new int[Math.min(size, array.length - i)]; System.arraycopy(array, i, chunk, 0, chunk.length); chunks.add(chunk); } return chunks; } } -
C++:
#include <iostream> #include <vector> std::vector<std::vector<int>> chunkArray(const std::vector<int>& array, int size) { std::vector<std::vector<int>> chunks; for (int i = 0; i < array.size(); i += size) { std::vector<int> chunk; for (int j = i; j < std::min(i + size, static_cast<int>(array.size())); ++j) { chunk.push_back(array[j]); } chunks.push_back(chunk); } return chunks; } -
Идем:
package main import "fmt" func chunkArray(array []int, size int) [][]int { chunks := [][]int{} for i := 0; i < len(array); i += size { end := i + size if end > len(array) { end = len(array) } chunks = append(chunks, array[i:end]) } return chunks } func main() { array := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} size := 3 chunks := chunkArray(array, size) fmt.Println(chunks) }
Эти методы позволяют разбить массив на более мелкие фрагменты заданного размера на разных языках программирования.