2015-01-07 23 views
6

tôi có:Làm thế nào để loại bỏ mục từ mảng chỉ số chuỗi trong nguyên cảo

interface IMap { 
[name: string]: string; 
} 

var map: IMap = {}; 
map["S"] = "s"; 
map["C"] = "c"; 
map["D"] = "d"; 

Làm thế nào tôi có thể loại bỏ hoàn toàn bản đồ mục [ "S"]? Tôi không muốn kết thúc với một đối tượng null để sử dụng xóa bản đồ ["S"] sẽ không hoạt động.

+3

Tại sao bạn nghĩ 'xóa bản đồ [" S "]' sẽ để lại một null phía sau? Chẳng phải nó sẽ cư xử như JS sao? Bạn đã thử à? –

+0

Tôi vừa nhận ra mình có lỗi đánh máy và đang nhận [Object object] khi in kết quả. Sau khi tôi sửa chữa, tôi thấy rằng mục đã được xóa thành công. – bb2

Trả lời

11

Làm thế nào tôi có thể xóa hoàn toàn bản đồ mục ["S"]? Tôi không muốn kết thúc với một đối tượng null nên sử dụng xóa bản đồ [ "S"]

delete không rõ ràng nó hoàn toàn:

interface IMap { 
[name: string]: string; 
} 

var map: IMap = {}; 
map["S"] = "s"; 
map["C"] = "c"; 
map["D"] = "d"; 

delete map["S"]; 
console.log(map); 
console.log(map["S"],map["non-existent"]); // undefined,undefined 
console.log(Object.keys(map)); // ["C","D"] 
Các vấn đề liên quan