簡體   English   中英

如何從已反轉的列表中拼接/刪除項目

[英]How to splice/remove an item from a list that was reversed

所以我以相反的順序顯示一個數組

*ngFor="let item of items.reverse(); let i = index"

我遇到的問題是,當我嘗試刪除這樣的項目時,

deleteItem(row) {
    this.items.splice(row,1);
  }

示例... array_items= [item1,item2,item3,item4]; 所以當它顯示時,它會首先顯示 array_items[3] 但如果我嘗試刪除它,它會刪除 array_items[0] 。 那有意義嗎? 它不會刪除正確的。 我怎樣才能做到這一點? 在此先感謝您的幫助。

由於列表是顛倒的,索引不會是row而是this.items.length - row ,所以我會嘗試:

deleteItem(row) {
    this.items.splice(this.items.length - (row + 1), 1);
}

嗨,當您反轉 ngfor 中的項目時,該值不會僅在視圖中更改,並且您的組件類中的項目值已反轉。 我認為你應該使用服裝反向管道:

    import { Pipe, PipeTransform } from '@angular/core';

    @Pipe({ name: 'reverse' })

    export class ReversePipe implements PipeTransform {
        transform(value) {
            return value.slice().reverse();
        }
    }

所以這些項目只是在視圖中顛倒了。

*ngFor="let item of items | reverse let i = item.length + index - 1;"

您應該將開始作為數組的長度減去 currentIndex 加 1。

deleteItem(row){
  this.item.splice(this.item.length - (row +1), 1);
}

這將從數組中刪除原始項目。

我建議:

deleteItem(row){
this.item.splice(this.item.length - (row +1), 1);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM