JS - Вставить объект внутри объекта, имеющего те же данные - PullRequest
0 голосов
/ 18 января 2020

Я упорядочиваю серию данных, содержащих одинаковые данные

var arr = [{id: 1, parent: "a"}, {id: 2, parent: "b"}];

var cArr = [
  {parentID: 1, a1: "1"}, 
  {parentID: 1, a1: "2"},
  {parentID: 2, a1: "3"},
  {parentID: 2, a1: "4"}
];

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

var array = [
    { id: 1, parent: "1", data: [{ a1: "1"}, { a1: "2"}] }, 
    { id: 2, parent: "2", data: [{ a1: "3"}, { a1: "4"}] }
];

Как добавить переменную как parent и data внутри объекта array?

Как получить доступ к id: 1, parent: "1", data: [{ a1: "1"}, { a1: "2"}]? Это как array[0]?

Я новичок в JS и вот так, если у меня есть ошибки, мне очень жаль. Я using console.log() чтобы проверить вещи

Ответы [ 2 ]

0 голосов
/ 18 января 2020

Вы можете достичь этого следующим образом:

var array = [{ parent: "1", data: [{ a1: "1"}, { a1: "2"}] }, 
               {parent: "2", data: [{ a1: "3"}, { a1: "4"}] 
}];

console.log(array[0].parent); // 1
console.log(array[0].data) // [{ a1: "1"}, { a1: "2"}]

Чтобы добавить элемент, просто сделайте это, используя .pu sh метод

array.push({ parent: "3", data: [{ a1: "5"}, { a1: "6"}] });
0 голосов
/ 18 января 2020

Итерируйте arr с Array.map() и создайте новый объект с содержимым исходного объекта, используя распространение объекта. Чтобы получить соответствующие предметы из cArr, используйте Array.slice() с индексом текущего элемента:

const arr = [{parent: "1"}, {parent: "2"}];
const cArr = [{a1: "1"}, {a1: "2"}, {a1: "3"}, {a1: "4"}];

const result = arr.map((o, i) => ({
  ...o, // copy the original object's content
  data: cArr.slice(i * 2, i * 2 + 2) // slice the sub-array from cArr
}));

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