Tôi có mảng dữ liệu đối tượng:
[
{"company": "Google", "country": "USA", "employee": "John"},
{"company": "Amazon", "country": "UK", "employee": "Arya"},
{"company": "Google", "country": "KSA", "employee": "Cersi"},
{"company": "Amazon", "country": "USA", "employee": "Tyrion"},
{"company": "Amazon", "country": "USA", "employee": "Daenarys"},
{"company": "Google", "country": "KSA", "employee": "Dothrokhi"}
]
Làm thế nào tôi có thể tạo một đối tượng lồng nhau như dưới đây?
{
"Amazon": {
"UK": {"Arya": null},
"USA": {"Tyrion": null, "Daenarys": null}
},
"Google": {
"KSA": {"Cersi": null, "Dothrokhi": null},
"USA": {"John": null}
}
}
Hãy nói rằng E có một ParentArray chứa nhiều mảng phụ mỗi cùng kích thước, mỗi mảng phụ là một mảng các đối tượng chứa hai thuộc tính: khóa và giá trị. Trong một SubArray, người ta đã xác nhận rằng hai đối tượng không thể có cùng một khóa nhưng tất cả các subarrays có cùng một cặp n phím trong đó n là kích thước của mảng phụ.
Công việc của chúng tôi là chuẩn bị một đối tượng có khóa làm khóa của các đối tượng và giá trị là một mảng chứa tất cả các giá trị cho khóa cụ thể đó.
Đây là mảng cha mẹ mẫu của chúng tôi -
const parentArray = [[ { key: 123, value: 'India' }, { key: 124, value: 'USA' }, { key: 125, value: 'Japan' }, { key: 126, value: 'Denmark' }, { key: 127, value: 'Austria' }, ], [ { key: 124, value: 'Kenya' }, { key: 126, value: 'UK' }, { key: 123, value: 'Germany' }, { key: 127, value: 'Spain' }, { key: 125, value: 'Portugal' }, ]];
Chúng tôi sẽ lặp lại trên mảng cha mẹ và sau đó tất cả các mảng phụ từng cái một và nếu chúng tôi tìm thấy một phím phù hợp, chúng tôi sẽ đẩy nó vào mảng giá trị nếu không chúng tôi tạo một mảng giá trị mới.
Mã đầy đủ cho điều này sẽ là -
Thí dụ
const parentArray = [[ { key: 123, value: 'India' }, { key: 124, value: 'USA' }, { key: 125, value: 'Japan' }, { key: 126, value: 'Denmark' }, { key: 127, value: 'Austria' }, ], [ { key: 124, value: 'Kenya' }, { key: 126, value: 'UK' }, { key: 123, value: 'Germany' }, { key: 127, value: 'Spain' }, { key: 125, value: 'Portugal' }, ]]; const map = {}; parentArray.forEach[arr => { arr.forEach[obj => { const { key, value } = obj; if[map[key]]{ map[key].push[value]; }else{ map[key] = [value] } }] }]; console.log[map];
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
{ '123': [ 'India', 'Germany' ], '124': [ 'USA', 'Kenya' ], '125': [ 'Japan', 'Portugal' ], '126': [ 'Denmark', 'UK' ], '127': [ 'Austria', 'Spain' ] }
Cập nhật vào ngày 19 tháng 8 năm 2020 07:00:09
- Câu hỏi và câu trả lời liên quan
- Giá trị gia tăng MongoDB bên trong mảng lồng nhau?
- Nhóm mảng giá trị lồng nhau trong khi so sánh 2 đối tượng - JavaScript
- Giá trị mongDB tăng lên bên trong một mảng lồng nhau
- Làm thế nào để nhóm mảng các đối tượng bằng ID trong JavaScript?
- Đối tượng nhóm theo tài sản trong JavaScript
- Làm thế nào để chuyển đổi các cặp mảng lồng nhau thành các đối tượng trong một mảng trong JavaScript?
- JavaScript mảng. Bao gồm bên trong mảng lồng nhau trả về false
- Truy cập các đối tượng JavaScript lồng nhau với phím Chuỗi
- Cách nhóm một mảng các đối tượng theo khóa trong JavaScript
- Đơn giản hóa mảng lồng nhau JavaScript
- Truy cập các đối tượng từ cấu trúc đối tượng lồng nhau trong MongoDB
- Cách sắp xếp một mảng các đối tượng dựa trên độ dài của một mảng lồng nhau trong JavaScript
- Làm thế nào để truy cập các đối tượng JSON lồng nhau trong JavaScript?
- Các tham số mặc định của ES6 trong các đối tượng lồng nhau - JavaScript
- Sắp xếp mảng lồng nhau chứa các đối tượng tăng dần và giảm dần theo ngày trong JavaScript