typescript中怎么把列表分成一个一个的
时间: 2024-09-24 15:16:40 浏览: 7
在 TypeScript 中,你可以使用数组的 `map()`、`filter()` 或者 `reduce()` 方法将一个列表分割成多个单独的部分。这里有几个例子:
1. **使用 map() 和 slice()**:
如果你想根据某个条件创建新的子数组,可以先用 `map()` 创建一个新的元素数组,然后用 `slice()` 分割:
```typescript
function splitArray(list: any[], condition: (item: any) => boolean): any[][] {
return list.map((item, index) => {
if (condition(item)) {
return [list.slice(index, index + item.length)];
}
}).filter(Boolean); // 过滤掉空数组
}
// 示例
let items = [1, 2, 3, 4, 5];
const chunks = splitArray(items, item => item % 2 === 0);
```
2. **使用 reduce() 和 Array.from()**:
另一种方法是使用 `reduce()` 函数配合 `Array.from()` 将连续的元素组合成子数组:
```typescript
function splitIntoChunks(list: any[], size: number): any[][] {
return list.reduce((acc, current, index) => {
if ((index + 1) % size === 0 || index === list.length - 1) {
acc.push(Array.from({ length: size }, (_, i) => current[i]));
} else {
acc[acc.length - 1].push(current);
}
return acc;
}, []);
}
// 示例
const items = [1, 2, 3, 4, 5, 6];
const chunks = splitIntoChunks(items, 3);
```