javascript - Typescript - 数组到 block

标签 javascript arrays angular typescript

我有一个数组如下:

public taskListCustom: any=[
{title: 'Task 1', status: 'done'},
{title: 'Task 2', status: 'done'},
{title: 'Task 3', status: 'done'},
{title: 'Task 4', status: 'done'},
{title: 'Task 5', status: 'done'},
{title: 'Task 6', status: 'done'},
{title: 'Task 7', status: 'done'},
{title: 'Task 8', status: 'done'},
{title: 'Task 9', status: 'done'},
{title: 'Task 10', status: 'done'},
{title: 'Task 11', status: 'done'},
{title: 'Task 12', status: 'done'},
{title: 'Task 13', status: 'done'},
{title: 'Task 14', status: 'done'},
{title: 'Task 15', status: 'done'},
{title: 'Task 16', status: 'done'},
{title: 'Task 17', status: 'done'},
{title: 'Task 18', status: 'done'},
{title: 'Task 19', status: 'done'},
{title: 'Task 20', status: 'done'},
{title: 'Task 21', status: 'done'},
{title: 'Task 22', status: 'done'},
{title: 'Task 23', status: 'done'},
{title: 'Task 24', status: 'done'},
]

还有另一个空数组:public taskListCustomChunked: any=[];

我的目标是:如果我得到的 block 大小为 6(这个数字可以是 4 到 11 之间的任何值),那么我必须将 taskListCustom 分成 6 个数组(即 24/6=4),然后将每个 block 作为一个将数组放入 taskListCustomChunked 即它看起来像:

taskListCustomChunked = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[..],[..]]

我怎样才能完成它?

最佳答案

您可以使用 slice 方法实现这一点。

let taskListCustom=[ {title: 'Task 1', status: 'done'}, {title: 'Task 2', status: 'done'}, {title: 'Task 3', status: 'done'}, {title: 'Task 4', status: 'done'}, {title: 'Task 5', status: 'done'}, {title: 'Task 6', status: 'done'}, {title: 'Task 7', status: 'done'}, {title: 'Task 8', status: 'done'}, {title: 'Task 9', status: 'done'}, {title: 'Task 10', status: 'done'}, {title: 'Task 11', status: 'done'}, {title: 'Task 12', status: 'done'}, {title: 'Task 13', status: 'done'}, {title: 'Task 14', status: 'done'}, {title: 'Task 15', status: 'done'}, {title: 'Task 16', status: 'done'}, {title: 'Task 17', status: 'done'}, {title: 'Task 18', status: 'done'}, {title: 'Task 19', status: 'done'}, {title: 'Task 20', status: 'done'}, {title: 'Task 21', status: 'done'}, {title: 'Task 22', status: 'done'}, {title: 'Task 23', status: 'done'}, {title: 'Task 24', status: 'done'}, ]
let chunkLength= 7;
let chunkSize=Math.round(taskListCustom.length/chunkLength);
let result=[];
for (i=0; i<taskListCustom.length; i+=chunkSize) {
    if(result.length<chunkLength-1)
      result.push(taskListCustom.slice(i,i+chunkSize).map(a=>a.title));
    else{
      result.push(taskListCustom.slice(i).map(a=>a.title));
      break;
    }
}
console.log(result);

关于javascript - Typescript - 数组到 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46525259/

相关文章:

Javascript CR+LF 会破坏字符串?

javascript - 如何将我的注册详细信息存储在本地存储中?

java - 复制一个数组

syntax - Angular 2 类前面的省略号(在本例中为集合)

javascript - 在所有输入表单都填写完多个表单之前,下一个按钮无法起作用

javascript - Greasemonkey 脚本从 URL 中删除参数

java - 用用户输入按位置替换破折号然后存储

python - 使用 numpy.save 保存 Numpy 二维数组列表(数组一起呈锯齿状)

angular - 如何以 react 形式退出递归调用 valueChanges

java - 为什么CascadeType.MERGE删除数据库中的记录