我有一個我在TypeScript中創建的數組,它有一個我用作鍵的屬性。如果我有那個鑰匙,我怎麼能從它移除一個物品?如何在TypeScript中刪除數組項目?
回答
與在JavaScript中使用的方式相同。
delete myArray[key];
請注意,這將元素設置爲undefined
。
最好使用Array.prototype.splice
功能:
var index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
如果數組對象的類型,那麼最簡單的方法是
let foo_object // Item to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);
這不會刪除任何簡單的過濾條件。如果實際需要修改列表,這不是方法。 – user573434 2017-06-13 18:29:55
@ user573434是的,你說得對,正如名字所示。但是,如果你想刪除一個成功的刪除api調用等對象的情況下,這是簡單的方法。 – 2017-06-14 09:10:48
這對我沒有一個唯一的鍵屬性的對象數組完美的作品。 @ user573434過濾器方法返回一個沒有過濾對象的新數組,因此生成的數組確實已刪除該對象。 – Jason 2017-06-25 03:22:11
這是我該解決方案:
onDelete(id: number) {
this.service.delete(id).then(() => {
let index = this.documents.findIndex(d => d.id === id); //find index in your array
this.documents.splice(index, 1);//remove element from array
});
event.stopPropagation();
}
使用ES6您可以使用此代碼:
removeDocument(doc){
this.documents.forEach((item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
最好的解決方案可以在不改變數組引用的情況下移除,並且可以實現特定的等式algorythm – Sid 2017-11-21 10:43:02
您可以使用數組上的splice
方法刪除元素。
例如,如果你有一個數組名爲arr
使用以下命令:
arr.splice(2,1);
所以這裏與指數2個元素是出發點和參數2將確定有多少元素被刪除。
如果你想刪除名爲arr
然後做這個數組的最後一個元素:
arr.splice(arr.length,1);
這將返回ARR與刪除最後一個元素。
- 1. 如何刪除子數組中的項目時刪除主數組?
- 2. 從JavaScript中移除項目從數組中刪除項目
- 3. 從ListPreference中刪除數組項目
- 4. 從動態數組中刪除項目
- 5. 刪除數組中的項目
- 6. PHP從數組中刪除項目
- 7. C#從類數組中刪除項目
- 8. jQuery從數組中刪除項目
- 9. 從數組中刪除多個項目
- 10. 從通用數組中刪除項目
- 11. 刪除PHP數組中項目的.htm
- 12. 如何使用onclick函數刪除數組中的項目?
- 13. 如何從ListView中刪除項目而不從數據庫中刪除項目?
- 14. 如何從一個數組中的項目中刪除模式
- 15. 如何從jquery中的數組中刪除項目?
- 16. 如何從PowerShell中的數組中刪除項目?
- 17. 如何添加/刪除Java中的數組中的項目?
- 18. 如何從jquery中的數組對象中刪除項目
- 19. 如何從項目的名稱中刪除數組中的項目?
- 20. 如何在eclipse項目中刪除點?
- 21. 如何刪除數據庫後從運行組件中刪除項目
- 22. 如何從數組中排除項目?
- 23. 如何從上下文菜單中刪除數組項目?
- 24. 如何從Perl數組中刪除重複的項目?
- 25. 如何使用過濾器從數組中刪除項目?
- 26. 如何從JavaScript數組中刪除項目?
- 27. 如何使用mongo刪除流星中的數組項目?
- 28. 如何添加或刪除Windows Phone中的數組項目?
- 29. 如何從數組angularjs中刪除項目?
- 30. 如何刪除對象數組中的項目?
您可以添加一個類型! 'var index:number = myArray.indexOf(key,0);' – CorayThan 2015-12-19 00:38:26
@CorayThan當然,它會被隱式地鍵入爲'indexOf'返回一個'number'? – Chris 2016-06-08 10:27:02
@Chris雖然在這種簡單情況下很明顯,但如果您明確定義每個變量的類型,它可以幫助您更快地診斷錯誤。您已經在不止一次的地方使用了'index',並且其中一個地方('splice')希望看到一個數字,否則您會得到一個錯誤。目前編譯器不能阻止你在那裏犯錯誤。 – 2016-11-02 09:56:35