Vớilàm thế nào để loại bỏ giá trị + phím từ băm trong javascript
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key2'] = { Name: 'Object 2' };
myHash['key3'] = { Name: 'Object 3' };
làm thế nào để loại bỏ key2
, và object 2
từ băm, mà nó kết thúc trong tình trạng như thể tôi đã làm:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key3'] = { Name: 'Object 3' };
xóa không làm những gì tôi muốn;
delete myHash['key2']
chỉ đơn giản là mang lại cho tôi điều này:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myhash['key2'] = null;
myHash['key3'] = { Name: 'Object 3' };
các tài liệu duy nhất tôi có thể tìm thấy trên splice
và slice
thỏa thuận với indexers số nguyên, mà tôi không có.
Chỉnh sửa: Tôi cũng không biết rằng 'khóa2' nhất thiết phải là ở vị trí [1]
CẬP NHẬT
OK cá trích đỏ nhẹ, xóa dường như để làm những gì tôi muốn trên bề mặt, Tuy nhiên, im sử dụng json2.js để stringify đối tượng của tôi để json cho đẩy lại cho máy chủ,
sau ive xóa, myHash được đăng như:
[ { Name: 'Object 1' }, null, { Name: 'Object 3' } ]
Đây có phải là lỗi trong json2.js không? hoặc là một cái gì đó im làm sai với xóa?
Cảm ơn
Điều bạn đang làm là thêm thuộc tính vào đối tượng, khác với việc thêm thành phần vào mảng/băm. Bạn đang tìm cách xóa một thuộc tính, nhiều hơn hoặc ít hơn. Hãy thử xóa myHash.key1, như đã đề cập trong các nhận xét khác. –
Nếu đó là một hashtable, bạn nên sử dụng 'var myHash = new Object()' thay vì 'var myHash = new Array()'. – cprcrack