Как глубоко объединить объекты в реагировать JS - PullRequest
0 голосов
/ 29 ноября 2018

{"activities": [
                {
                    "actor": {
                        "id": 409,
                        "avatar": "",
                        "first_name": "Sakthi",
                        "last_name": "Vel",
                        "headline": null,
                        "is_online": false,
                    },
                    "foreign_id": "post.UsPost:253",
                    "id": "ed50e218-f3e8-11e8-8080-800132d8e9c0",
                    "object": {
                        "id": 253,
                        "comments": 0,
                        "likes": 0,
                        "files": [
                            {
                                "id": 112,
                                "file": "",
                                "content_type": "video/mp4",
                                "file_type": "video",
                                "created_at": "2018-11-29T15:10:38.524836Z"
                            }
                        ],
                        "post_type": "post",
                        "is_bookmarked": false,
                        "is_liked": false,
                        "link": "/post/api/v1/253/",
                        "target": "post.UsPost:253",
                        "foreign_id": "post.UsPost:253",
                        "actor": {
                            "id": 409,
                            "avatar": "",
                            "first_name": "Sakthi",
                            "last_name": "Vel",
                            "headline": null,
                            "is_online": false,
                        },
                        "text": "#Multiple video (.mp4) test. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.",
                        "skills": [
                            "VFX"
                        ],
                        "created_at": "2018-11-29T15:10:37.426332Z",
                        "is_link": true,
                        "view_count": 0,
                        "created_by": 409
                    },
                    "origin": "user:409",
                    "target": "",
                    "time": "2018-11-29T15:10:37.426332",
                    "type": "post",
                    "verb": "posted"
                }
                
                
           {
            "activities": [
                {
                    "actor": {
                        "id": 64,
                        "last_name": "",
                        "headline": "Learning is my Passion",
                        "is_online": false,
                        "username": "Uchenna1"
                    },
                    "foreign_id": "post.UsPost:183",
                    "id": "447f6710-eb08-11e8-8080-8001369e78cd",
                    "object": {
                        "id": 183,
                        "comments": 1,
                        "likes": 1,
                        "files": [
                            {
                                "id": 87,
                                "content_type": "image/jpg",
                                "file_type": "image",
                                "created_at": "2018-11-18T08:02:18.759309Z"
                            }
                        ],
                        "post_type": "post",
                        "is_bookmarked": false,
                        "is_liked": false,
                        "link": "/post/api/v1/183/",
                        "target": "post.UsPost:183",
                        "foreign_id": "post.UsPost:183",
                        "actor": {
                            "id": 64,
                            "first_name": "Uchenna",
                            "last_name": "",
                            "headline": "Learning is my Passion",
                            "is_online": false,
                            "username": "Uchenna1"
                        },
                        "text": "This is codigo",
                        "skills": [
                            "Javascript"
                        ],
                        "created_at": "2018-11-18T08:02:17.626600Z",
                        "is_link": true,
                        "view_count": 10,
                        "created_by": 64
                    },
                    "origin": "user:64",
                    "target": "",
                    "time": "2018-11-18T08:02:17.626600",
                    "type": "post",
                    "verb": "posted"
                }
            ],
            "activity_count": 1,
            "actor_count": 1,
            "created_at": "2018-11-18T08:02:18.647108",
            "group": "posted_2018-11-18",
            "id": "451b1eab-eb08-11e8-8080-80007915e2b6.posted_2018-11-18",
            "is_read": false,
            "is_seen": true,
            "updated_at": "2018-11-18T08:02:18.647108",
            "verb": "posted"
        }

У меня проблема с объединением двух объектов.Ниже приведена привязка двух объектов и результата.

enter image description here

Здесь на изображении выше я хочу объединить старые данные и новые данные

но после слияния получаются неправильные выходные данные, т.е. новые обновленные данные.

Я использую команду для этого.

let newData = { ...a , ...b }

 console.log('new updated data: ',newData)

также я выполняю эту операцию в избыточном действии перед отправкой.

Здесь {"actions": [....], ....} - это один объект, и я хочу объединить его с приведенным ниже.

1 Ответ

0 голосов
/ 29 ноября 2018

Можете ли вы уточнить, есть ли у ваших объектов дочерние объекты, которые являются объектами или массивами, и если вы хотите сказать, что они не объединяются или вообще ничего не объединяются?

, например:

let oldData = {
      key: value, 
      key1: { childkey1: value1 }
}

если у вас есть что-то подобное, и проблема в том, как я объяснил.Это потому, что JavaScript не делает глубоких слияний.он выполняет поверхностное объединение.

Самый простой вариант - использовать библиотеку типа lodash, которая имеет функцию для глубокого объединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...