Объединение нескольких объектов Javascript в один объект - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь добавить все объекты javascript в одну переменную, но не в один и тот же объект. Вот что я имею в виду:

object1 = {id: 1, name: Dean};
object2 = {id: 2, name: Sam};
object3 = {id: 3, name: Castiel};

Мне нужно, чтобы они были:

object1 = {id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel};

В настоящее время я получаю всю эту информацию обратно из вызова ajax, и мне нужно пройти через нее, вернуть ее в действительный объект javascript и передать все эти объекты сразу в переменную:

var hierarchy;
for (i = 0; i < response['tree']['id'].length; i++) {

    hierarchy = $.extend(true, hierarchy, {
        id: response['tree']['id'][i],
        parentId: response['tree']['parentId'][i], 
        Name: response['tree']['name'][i]
    });
}

var orgchart = new getOrgChart(document.getElementById("cast"), {
    dataSource: [hierarchy]
});

Основная цель: свойство dataSource должно заканчиваться значениями, которые выглядят так:

var orgchart = new getOrgChart(document.getElementById("cast"), {
    dataSource: [{id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel}]
});

РЕДАКТИРОВАТЬ: РЕШЕНИЕ , Основываясь на предоставленных ответах, я изменил код, и теперь он работает правильно, я неправильно понял, что выводил консольный журнал против того, какой синтаксис был допустим.

var hierarchy = [];
for (i = 1;i < response['tree']['id'].length; i++) {

    groupData = {
        id: response['tree']['id'][i],
        parentId: response['tree']['parentId'][i], 
        Name: response['tree']['name'][i]
    };

    hierarchy.push(groupData);
}

var orgchart = new getOrgChart(document.getElementById("cast"), {
    dataSource: [{
        id: response['tree']['id'][0],
        parentId: response['tree']['parentId'][0], 
        Name: response['tree']['name'][0]
    }]
});

orgchart.loadFromJSON(hierarchy);

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Так как мне нравится шоу

var parent = { objectOne: { id: 1, name: 'Dean' },  objectTwo: { id: 2, name: 'Sam' },  object3: { id: 3, name: 'Castiel' } }

или как массив

var parent = [{ id: 1, name: 'Dean' }, { id: 2, name: 'Sam' }, { id: 3, name: 'Castiel' } ]

Надеюсь, это поможет

0 голосов
/ 03 июля 2018

Ваш текущий Мне нужно, чтобы они были: требование недействительно с Javascript.

object1 = {id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel};

Вы можете попробовать таким образом,

var obj = {
  object1: {
    id: 1,
    name: 'Dean'
  },
  object2: {
    id: 2,
    name: 'Sam'
  },
  object3: {
    id: 3,
    name: 'Castiel'
  }
};

var allObj = [];

// Populate allObj array
for (var key in obj) {
  allObj.push(obj[key]);
}
console.log(allObj);
0 голосов
/ 03 июля 2018

Хочу отметить, что приведенный ниже код недействителен.

object1 = {id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel};

Вы должны использовать массив для хранения тех значений, которые будут выглядеть следующим образом:

const objects = [{id: 1, name: Dean}, {id: 2, name: Sam}, {id: 3, name: Castiel}];

Примечание. Вы сможете добавлять новые объекты в массив, используя push().

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