打字稿中的分块数组class
chunking array class in typescript
我正在尝试在 typescript 中创建一个分块 class,因为我不断重复使用相同的代码,基于:Split array into chunks
这是我的资料:
export class array_chunk {
arr = [];
chunk: number;
constructor(arr: any, chunk: number) {
this.arr = arr;
this.chunk = chunk;
}
forEachChunk(funct: Function) {
for (let i = 0, j = this.arr.length; i < j; i += this.chunk) {
const temparray = this.arr.slice(i, i + this.chunk);
temparray.forEach((ta: any) => {
funct();
});
}
}
}
/// usage?
let me = new array_chunk([5, 4, 3], 1);
me.forEachChunk((chunkArray: any) => {
console.log(JSON.stringify(chunkArray));
return chunkArray;
});
我无法理解它。基本上,我想要类似于 forEach 的东西,但对于块。然后我可以 forEach 那。我很接近吗?我意识到应该有不同的思考方式,因为我的例子只是猜测。
编辑 --> 这是我最终使用的解决方案代码,感谢@skovy
class array_chunk {
arr: any[];
chunk: number;
constructor(arr: any[], chunk = 100) {
this.arr = arr;
this.chunk = chunk;
}
forEachChunk(funct: Function) {
for (let i = 0, j = this.arr.length; i < j; i += this.chunk) {
const tempArray = this.arr.slice(i, i + this.chunk);
funct(tempArray);
}
}
}
/// usage
let me = new array_chunk([5, 4, 3, 2, 1, 3, 2, 4], 3);
me.forEachChunk((chunkArray: any[]) => {
console.log("chunk");
chunkArray.forEach((ca) => {
console.log(ca);
})
return chunkArray;
});
看起来 forEachChunk
需要为将传递该块的每个元素进行回调。然而,在实际实现中,它被调用为 funct()
而不传递任何参数。
您是否尝试更新此调用以传递块:funct(ta)
。
我正在尝试在 typescript 中创建一个分块 class,因为我不断重复使用相同的代码,基于:Split array into chunks
这是我的资料:
export class array_chunk {
arr = [];
chunk: number;
constructor(arr: any, chunk: number) {
this.arr = arr;
this.chunk = chunk;
}
forEachChunk(funct: Function) {
for (let i = 0, j = this.arr.length; i < j; i += this.chunk) {
const temparray = this.arr.slice(i, i + this.chunk);
temparray.forEach((ta: any) => {
funct();
});
}
}
}
/// usage?
let me = new array_chunk([5, 4, 3], 1);
me.forEachChunk((chunkArray: any) => {
console.log(JSON.stringify(chunkArray));
return chunkArray;
});
我无法理解它。基本上,我想要类似于 forEach 的东西,但对于块。然后我可以 forEach 那。我很接近吗?我意识到应该有不同的思考方式,因为我的例子只是猜测。
编辑 --> 这是我最终使用的解决方案代码,感谢@skovy
class array_chunk {
arr: any[];
chunk: number;
constructor(arr: any[], chunk = 100) {
this.arr = arr;
this.chunk = chunk;
}
forEachChunk(funct: Function) {
for (let i = 0, j = this.arr.length; i < j; i += this.chunk) {
const tempArray = this.arr.slice(i, i + this.chunk);
funct(tempArray);
}
}
}
/// usage
let me = new array_chunk([5, 4, 3, 2, 1, 3, 2, 4], 3);
me.forEachChunk((chunkArray: any[]) => {
console.log("chunk");
chunkArray.forEach((ca) => {
console.log(ca);
})
return chunkArray;
});
看起来 forEachChunk
需要为将传递该块的每个元素进行回调。然而,在实际实现中,它被调用为 funct()
而不传递任何参数。
您是否尝试更新此调用以传递块:funct(ta)
。