【发布时间】:2019-02-07 20:18:11
【问题描述】:
我有一个数组,看起来像:
public static readonly List: Array<any> = [
{ name: 'CCS', link: 'Dummy link1' },
{ name: 'CCR', link: 'Dummy link2' },
{ name: 'PM', link: 'Dummy link3' },
{ name: 'CM', link: 'Dummy link4' },
{ name: 'JM', link: 'Dummy link5' },
{ name: 'PSM', link: 'Dummy link6' }
];
我想要做的是,每 3 个元素取 List 数组,然后创建另一个数组,如下所示:
ArrayFinal[{
{ name: 'CCS', link: 'Dummy link1' },
{ name: 'CCR', link: 'Dummy link2' },
{ name: 'PM', link: 'Dummy link3' }
},
{
{ name: 'CM', link: 'Dummy link4' },
{ name: 'JM', link: 'Dummy link5' },
{ name: 'PSM', link: 'Dummy link6' }
}]
我正在尝试像查找 3 ===0 的模数,然后转到下一个,但不知道该怎么做。
任何帮助都会非常有帮助。
更新 我尝试过的:
public func(): any {
for (let i = 1; i <= Array.List.length; i++) {
if (i % 3 === 0) {
this.ArrayFinal[i] = [Array.List[i], Array.List[i - 1],
Array.List[i - 2]];
}
}
这以某种方式跳过了第一个元素....我现在完全不知道为什么
【问题讨论】:
-
没有真正详细说明作为答案,但您可以循环从 3 到 3 个元素(而不是 1 x 1)的数组,使用
Array.prototype.slice()一次提取 3 个元素和 @987654325 @ 然后在一个新数组上。 -
您能重新检查一下
ArrayFinal的语法吗?这看起来不像是有效的语法。 -
@DeborahK 有效
-
如果我只是将
ArrayFinal行完全按照您的方式粘贴到 Stackblitz(在组件内),我会收到错误';' expected。至少,它似乎应该有一个=? -
好的..谢谢@DeborahK
标签: angular typescript logic