Tôi có một mảng mà tôi đã tạo trong TypeScript và nó có một thuộc tính mà tôi sử dụng làm khóa. Nếu tôi có khóa đó, làm cách nào tôi có thể xóa một mục khỏi khóa đó?Làm cách nào để xóa mục mảng trong TypeScript?
Trả lời
Tương tự như cách bạn làm trong JavaScript.
delete myArray[key];
Lưu ý rằng điều này đặt thành phần là undefined
.
Tốt hơn để sử dụng Array.prototype.splice
chức năng:
var index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
Nếu mảng là loại đối tượng, thì cách đơn giản nhất là
let foo_object // Item to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);
Điều này không loại bỏ bất cứ điều gì nó chỉ đơn giản là bộ lọc. Nếu danh sách thực sự cần được sửa đổi thì đây không phải là cách. – user573434
@ user573434 có, bạn nói đúng, như tên cho biết. Nhưng đây là cách tiếp cận đơn giản trong trường hợp bạn muốn xóa một đối tượng thành công khi xóa lệnh api, v.v. –
Điều này làm việc hoàn hảo cho tôi trên một mảng đối tượng không có thuộc tính khóa duy nhất. @ user573434 phương thức lọc trả về một mảng mới không có đối tượng được lọc, do đó mảng kết quả không có đối tượng bị loại bỏ. – Jason
Đây là giải pháp của tôi cho rằng:
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();
}
Với ES6, bạn có thể sử dụng mã này:
removeDocument(doc){
this.documents.forEach((item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
Giải pháp tốt nhất để loại bỏ mà không thay đổi tham chiếu mảng VÀ có khả năng triển khai thực hiện bình đẳng cụ thể – Sid
Bạn có thể sử dụng phương pháp splice
trên một mảng để xóa các phần tử.
ví dụ nếu bạn có một mảng với tên arr
sử dụng như sau:
arr.splice(2,1);
vì vậy đây là yếu tố có chỉ số 2 sẽ là điểm khởi đầu và đối số 2 sẽ xác định có bao nhiêu yếu tố để bị xóa .
Nếu bạn muốn xóa các yếu tố cuối cùng của mảng tên arr
sau đó làm điều này:
arr.splice(arr.length,1);
này sẽ trở lại arr với yếu tố cuối cùng bị xóa.
- 1. Mở rộng mảng trong TypeScript
- 2. Làm cách nào để xóa các mục trùng lặp khỏi một mảng trong Perl?
- 3. Cách sử dụng mảng đánh máy TypeScript
- 4. Tạo mảng đã nhập trong TypeScript 0.9.0.1
- 5. Làm thế nào để khởi tạo, khởi tạo và cư trú một mảng trong TypeScript?
- 6. Làm cách nào để nhập tệp ngoài bằng TypeScript?
- 7. Làm cách nào để "làm phẳng" hoặc "chỉ mục" mảng 3D trong mảng 1D?
- 8. Typescript - Cách kiểm tra xem một chỉ mục mảng có tồn tại không?
- 9. Làm thế nào để xóa một mảng trong C#?
- 10. Làm cách nào để xóa thư mục không trống?
- 11. Làm thế nào để xóa mảng 2D này trong C++
- 12. Làm cách nào để xóa chỉ mục ElasticSearch?
- 13. Làm cách nào để xóa một mục khỏi Tập hợp?
- 14. Làm cách nào để xóa tất cả các mục ListBox?
- 15. Làm cách nào để thêm mục mới vào mảng Chuỗi?
- 16. Xóa mục khỏi mảng và thu hẹp mảng
- 17. Làm thế nào để xóa nhiều mục của một mảng theo giá trị?
- 18. cách bạn xóa mục nhập trống khỏi mảng
- 19. Làm cách nào để xác định chỉ mục mảng trong Mục tiêu C?
- 20. Làm cách nào để xóa một hàng trong một mảng có chứa số không?
- 21. Xóa các mục khỏi một mảng cấu trúc trong MATLAB
- 22. MongoDB - Xóa các mục trong một mảng lồng nhau
- 23. As3 - Làm thế nào để xóa một mảng hiệu quả?
- 24. Cách xóa một mảng
- 25. xóa các bản sao khỏi mảng trong mục tiêu c
- 26. Làm cách nào để xóa thư mục làm việc cục bộ của tôi trong git?
- 27. Xóa các chỉ mục chung của mảng
- 28. Cách xóa một mảng trong Visual C#
- 29. Làm cách nào để xóa tất cả các mục và thêm các mục mới vào UICollectionView?
- 30. Tôi làm cách nào để chú thích các loại đệ quy trong TypeScript?
Bạn có thể thêm loại đó! 'var index: number = myArray.indexOf (khóa, 0);' – CorayThan
@CorayThan Chắc chắn nó sẽ được gõ hoàn toàn như 'indexOf' trả về một' số'? – Chris
@Chris Trong khi rõ ràng trong trường hợp đơn giản này, nó có thể giúp bạn chẩn đoán lỗi nhanh hơn nếu bạn xác định loại cho mỗi biến một cách rõ ràng. Bạn đang sử dụng 'index' trong nhiều hơn một lần và một trong những nơi đó (' splice') muốn xem một số hoặc bạn sẽ gặp lỗi. Hiện tại trình biên dịch không thể ngăn bạn phạm sai lầm ở đó. –