【问题标题】:chunking array class in typescript打字稿中的分块数组类
【发布时间】:2020-05-21 01:21:09
【问题描述】:

我正在尝试在 typescript 中创建一个分块类,因为我不断重复使用相同的代码,基于: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;
});

【问题讨论】:

    标签: typescript class chunking


    【解决方案1】:

    看起来forEachChunk 期望每个元素都有一个回调,该块将在其中传递。然而,在实际实现中,它被调用为funct(),没有传递任何参数。

    您是否尝试更新此调用以传递块:funct(ta)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 2020-04-06
      • 2013-04-20
      • 2017-02-20
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      相关资源
      最近更新 更多