Tôi có một đối tượng JavaScript [tôi thực sự nhận được dữ liệu thông qua yêu cầu AJAX]:
var data = {};
Tôi đã thêm một số thứ vào đó:
data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }
Bây giờ tôi muốn xóa tất cả các đối tượng có trạng thái không hợp lệ [nhưng giữ mọi thứ giống nhau]:
var tempData = {};
for [ var index in data ] {
if [ data[index].Status == "Valid" ] {
tempData.push[ data ];
}
}
data = tempData;
Trong tâm trí của tôi, tất cả những điều này sẽ hoạt động, nhưng tôi đang gặp lỗi rằng
data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }
2 không phải là một chức năng. Tôi hiểu tại sao nó không giống như một mảng, nhưng tôi có thể làm gì khác?
hỏi ngày 19 tháng 1 năm 2012 lúc 12:12Jan 19, 2012 at 12:12
Andrew Jackmanandrew JackmanAndrew Jackman
13,5K7 Huy hiệu vàng35 Huy hiệu bạc44 Huy hiệu đồng7 gold badges35 silver badges44 bronze badges
2
data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }
3 dành cho các mảng, không phải đối tượng, vì vậy hãy sử dụng cấu trúc dữ liệu phù hợp.var data = [];
// ...
data[0] = { "ID": "1", "Status": "Valid" };
data[1] = { "ID": "2", "Status": "Invalid" };
// ...
var tempData = [];
for [ var index=0; indexitem.Status!='Invalid']
console.log[tempData]
Đã trả lời ngày 8 tháng 2 năm 2021 lúc 7:50Feb 8, 2021 at 7:50
0
tempData.push[ data[index] ];
Tôi đồng ý với câu trả lời đúng ở trên, nhưng .... bạn vẫn không cung cấp giá trị chỉ mục cho dữ liệu mà bạn muốn thêm vào tempdata. Nếu không có giá trị [chỉ mục] toàn bộ mảng sẽ được thêm vào.
Đã trả lời ngày 8 tháng 10 năm 2015 lúc 14:40Oct 8, 2015 at 14:40
2
Tôi cho rằng thực sự bạn nhận được đối tượng từ máy chủ và muốn lấy đối tượng trên đầu ra
Object.keys[data].map[k=> data[k].Status=='Invalid' && delete data[k]]
Đã trả lời ngày 16 tháng 4 năm 2019 lúc 7:31Apr 16, 2019 at 7:31
Kamil Kiełczewskikamil KiełczewskiKamil Kiełczewski
76.8K26 Huy hiệu vàng339 Huy hiệu bạc316 Huy hiệu Đồng26 gold badges339 silver badges316 bronze badges
Mozilla thực sự chỉ cho bạn cách xử lý các đối tượng bằng cách đẩy bằng cách chuỗi đẩy vào phương thức cuộc gọi:
"Đẩy là có chủ ý chung chung và chúng ta có thể sử dụng điều đó cho lợi thế của mình. Array.prototype.push có thể hoạt động trên một đối tượng tốt, như ví dụ này cho thấy.
Lưu ý rằng chúng tôi không tạo một mảng để lưu trữ một bộ sưu tập các đối tượng. Thay vào đó, chúng tôi lưu trữ bộ sưu tập trên chính đối tượng và sử dụng Call on Array.prototype.push để lừa phương pháp để nghĩ rằng chúng tôi đang xử lý một mảng và nó chỉ hoạt động, nhờ cách JavaScript cho phép chúng tôi thiết lập bối cảnh thực thi trong Bất cứ cách nào chúng tôi muốn.
data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }
0Lưu ý rằng mặc dù OBJ không phải là một mảng, phương pháp đẩy thành công thuộc tính chiều dài của OBJ giống như nếu chúng ta đang xử lý một mảng thực tế. "
//developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
Đã trả lời ngày 10 tháng 8 lúc 17:23Aug 10 at 17:23
Làm :
data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }
1Đã trả lời ngày 19 tháng 1 năm 2012 lúc 12:17Jan 19, 2012 at 12:17
Sudhir Bastakotisudhir BastakotiSudhir Bastakoti
97.9K15 Huy hiệu vàng156 Huy hiệu bạc161 Huy hiệu Đồng15 gold badges156 silver badges161 bronze badges
2