用角度打字稿

时间:2018-11-09 15:19:14

标签: angular typescript

我的申请中有两张卡。

我的第一张卡片的索引为0,我的第二张卡片的索引为1。

我有一个名为listAtributos的变种,它具有以下结构:

0: {indexvariacaoatributo: 0, id: 5, tipovariacao: "Cor", valorvariacao: "Azul"}
1: {indexvariacaoatributo: 0, id: 7, tipovariacao: "Tamanho", valorvariacao: "P"}
2: {indexvariacaoatributo: 1, id: 6, tipovariacao: "Cor", valorvariacao: "Amarelo"}
3: {indexvariacaoatributo: 1, id: 7, tipovariacao: "Tamanho", valorvariacao: "P"}

我的卡片索引和listAtributst(indexvariacaoatributo)索引之间存在一种关系,这样,我的元素就会显示在我的卡片中。

示例:

在索引为0的卡片0中,将显示以下项目:

0: {indexvariacaoatributo: 0, id: 5, tipovariacao: "Cor", valorvariacao: "Azul"}
1: {indexvariacaoatributo: 0, id: 7, tipovariacao: "Tamanho", valorvariacao: "P"

在具有索引1的卡片1中,将显示以下项目:

2: {indexvariacaoatributo: 1, id: 6, tipovariacao: "Cor", valorvariacao: "Amarelo"}
3: {indexvariacaoatributo: 1, id: 7, tipovariacao: "Tamanho", valorvariacao: "P"}

在任何给定时刻,我需要删除一张卡。在这种情况下,我的listAtributos.indexvariacaoatributo索引将错误。

我尝试制作一个具有更新listAtributos.indexvariacaoatributo符合索引的算法。

示例:

如果我排除卡0,则indexvariacaoatributo到其中1必须更新为0。

如果我排除卡1,则必须将indexvariacaoatributo修改为0,将其更新为1。

我尝试类似的事情:

 for(let i=0;i<this.listAtributos.length;i++){
  if(this.listAtributos[i].indexvariacaoatributo == index){
    this.listAtributos[i].indexvariacaoatributo = index - 1;
  }
}

但不起作用。而且我现在不认为其他算法。

有人可以帮我吗?对不起,我的英语。

1 个答案:

答案 0 :(得分:2)

让每张卡都有某种生成的号码,将其称为cardId。然后,不将卡索引存储在indexvariacaoatributo中,而是将相应的卡cardId存储。现在,对于listAtributos的每个元素,您将获得cardId,然后对所有卡进行过滤,以获取具有相应cardId的一张卡。