Назначение объекта переопределяет предыдущий объект, когда значения совпадают - PullRequest
0 голосов
/ 23 мая 2019

Итак, я ожидаю этот объект при использовании Object.assign для object1 и object2. Существует неизвестное количество объектов 1 - n диапазона.

  var expectedObject = [{
         "question": {
            "value": "foo"
        },
        "question2": {
            "value": "foo1"
        },
        "question3": {
            "value": ["fooArray"]
        }
    },
{
        "question": {
            "value": "foo1"
        },
        "question2": {
            "value": "foo2"
        },
        "question3": {
            "value": ["foo1Array"]
        }
    }];

 var object1 = {
        "question": {
            "value": "foo"
        },
        "question2": {
            "value": "foo1"
        },
        "question3": {
            "value": ["fooArray"]
        }
    };

var object2 = {
        "question": {
            "value": "fooIOverrideYouSucker"
        },
        "question2": {
            "value": "fooIOverrideYouSucker1"
        },
        "question3": {
            "value": ["fooIOverrideYouSuckerWonArray"]
        }
    }
var allItems = {}; 

// This will be running inside loop - object1 and object2 are just an examples to simplify the case

Object.assign(allItems, object1, object2);

console.log(JSON.stringify([allItems]));

Результаты, которые я получаю:

[{
"question": {
    "value": "fooIOverrideYouSucker"
},
"question2": {
    "value": "fooIOverrideYouSucker1"
},
"question3": {
    "value": ["fooIOverrideYouSuckerWonArray"]
}
}]

Есть ли хороший способ просто добавить несколько одинаковых объектов в существующий объект?

Спасибо.

Fiddle с приведенным выше примером. https://jsfiddle.net/bielus86/fad4w2Lo/10/

1 Ответ

2 голосов
/ 23 мая 2019

Если вы хотите создать массив с двумя объектами, вы можете просто сделать [object1, object2] или

var allItems = [];
allItems.push(object1);
allItems.push(object2); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...