Tôi có mảng các đối tượng lồng nhau sâu. Tôi muốn viết một hàm để trích xuất các đối tượng con tùy ý từ các mảng này. Trong một số trường hợp giá trị của thuộc tính lồng nhau là giá trị và đối tượng, trong trường hợp khác chúng là mảng.Trích xuất các đối tượng con lồng nhau sâu sắc theo tên thuộc tính với lodash
Ví dụ về mảng dưới:
[{parent: {level1: {level2: 'data'}}}]
[{parent: {level1: [{level2: {...}}, {level2: {...}}, {level2: {...}}]}}]
[{parent: {level1: [{level2: {level3: 'data'}}, {level2: {..}}, {level2: {..}}]}}]
Gọi chức năng khai thác trên một mảng như vậy nên kết quả trong một mảng của các đối tượng mà chúng ta đang quan tâm đến
Ví dụ về gọi hàm và kết quả của nó. cho các mảng ví dụ trên:
extractChildren(source, 'level2') = [{level2: 'data'}]
extractChildren(source, 'level2') = [{level2: {...}, level2: {...}, level2: {...}]
extractChildren(source, 'level3') = [{level3: 'data'}]
Có cách nào ngắn gọn để đạt được điều này với lodash
hoặc tôi nên sử dụng JavaScript thông thường để lặp qua các thuộc tính?
P.S. Nghĩ về nó như tương đương với XPath select all nodes with the name "nodename"
Bạn nên al do đó giải thích với một ví dụ về những đối tượng con nào cần được trích xuất, chính xác, đặc biệt là về kết quả trông như thế nào nếu một mục tiêu tiềm năng chứa một mục tiêu tiềm năng khác. – Tomalak
Hiển thị thêm, vui lòng. Bạn có thể cung cấp đầu vào được mong đợi, "cuộc gọi" và đầu ra dự kiến không? –
thêm thông tin – krl