Tôi có một mảng của cấu trúc JSON lồng, nơi họ đã thay đổi sâu sắc và không phải là cùng một bộ chìa khóa ở khắp mọi nơi:đệ quy (hoặc lặp lại) tạo một bảng html lồng nhau với d3.js?
[
{
"name":"bob",
"salary":10000,
"friends":[
{
"name": "sarah",
"salary":10000
},
{
"name": "bill",
"salary":5000
}
]
},
{
"name":"marge",
"salary":10000,
"friends":[
{
"name": "rhonda",
"salary":10000
},
{
"name": "mike",
"salary":5000,
"hobbies":[
{
"name":"surfing",
"frequency":10
},
{
"name":"surfing",
"frequency":15
}
]
}
]
},
{
"name":"joe",
"salary":10000,
"friends":[
{
"name": "harry",
"salary":10000
},
{
"name": "sally",
"salary":5000
}
]
}
]
Tôi muốn sử dụng D3 để render này bảng html như lồng nhau. Ví dụ cột bạn bè sẽ có bảng hiển thị tên và mức lương của bạn bè của cá nhân được tham chiếu trong hàng. Đôi khi một trong những bảng này sẽ có một cấp độ khác của một bảng phụ.
Tôi tưởng tượng cách để làm điều này là bằng cách đệ quy tạo bảng. Tôi đã viết một chương trình python mà có một cấu trúc JSON như thế này, và ám các bảng trong bảng, và cách dễ nhất để làm điều đó là đệ quy. Tôi thấy trên tài liệu d3.js có một điều .each()
mà bạn có thể gọi, mà tôi chắc chắn là những gì tôi cần, tôi chỉ cần một chút tăng nhận được ở đó (https://github.com/mbostock/d3/wiki/Selections#wiki-each).
Vậy có cách nào tốt đẹp để thực hiện điều này trong D3? Tôi đã tìm thấy ví dụ tuyệt vời này để hiển thị ma trận dữ liệu 2d dưới dạng bảng Creating a table linked to a csv file. Với hướng dẫn đó, tôi có thể nhận được cấp độ ngoài cùng nhất của cấu trúc dữ liệu này được biểu hiện dưới dạng bảng, nhưng tôi bị kẹt về cách đi vào các cấp đệ quy khi cần thiết, lúc này chúng chỉ hiển thị dưới dạng "Đối tượng" trong bảng vì tôi không đối xử với họ khác với các chuỗi và số thường. Tôi cũng tìm thấy câu hỏi/câu trả lời tương tự như câu hỏi của tôi, nhưng tôi thực sự không hiểu rõ javascript đủ để xem nơi/cách thức đệ quy đang diễn ra và đọc giải pháp cho phù hợp với nhu cầu của tôi: How do I process data that is nested multiple levels in D3?. Bất kỳ lời khuyên hay chỉ dẫn nào để hướng dẫn về đệ quy hoặc lặp lại xử lý cây lồng nhau như cấu trúc dữ liệu JSON trong D3 sẽ được đánh giá cao!
CNTT Chứa các ký tự không hợp lệ trong tệp javascript! tôi có thực sự cần phải thay thế các biến này trong gần 8000 dòng không? có thật không? wtf – msqar
@msqar - không, bạn chỉ cần xác định rằng đó là UTF-8: xem https://github.com/mbostock/d3/wiki/Upgrading-to-3.0. Bạn cần một loại tài liệu, một thẻ và tập lệnh của bạn cần được bao gồm như sau: – dja
Có vẻ thú vị. Điều gì về mảng mảng? @nautat – bumpkin