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

this is my array
var x = [
{some data},
{some data},
{some data} 
]
this is my new data I want to add to an object in the array x

var newData = [
{}
]

I want this as result:

x = [
{some data},
{some data, {newData} },
{some data} 
]

Я знаю о функции push, но это просто добавляет новые данные в массив. Я хочу добавить его к объекту внутри массива.

0
senadk 4 Фев 2022 в 11:00

3 ответа

В вашем массиве должен быть какой-то идентификатор для каждого объекта (или вы можете использовать индекс объекта внутри массива, который может измениться в зависимости от ваших действий).

const dataArray = [
  {id: 1, /* .. other data */},
  {id: 2, /* .. other data */},
  {id: 3, /* .. other data */}
]

Следующий метод получает идентификатор для поиска объекта внутри массива. Если он был найден, новые данные будут добавлены в этот самый объект.

function addToX(identifier: number, newData: object) {
  const obj = dataArray.find((x) => x.id === identifier);
  
  if (obj) {
    obj.newData = {...newData};
  }
}
1
Philipp Meissner 4 Фев 2022 в 11:20

Я не эксперт, но думаю, вы могли бы попробовать это: x=x.concat(newData)

0
Giovanna 4 Фев 2022 в 11:06
let x:any =[];
let y:any =[];

 x= [
    {'data' : 1},
    {'data' : 2},
    {'data' : 3},
];

y =[
    {'newData' : 1},
    {'newData' : 2},
    {'newData' : 3},
];

x.push({'data':y});

console.log(x);
0
Aromal A 4 Фев 2022 в 11:16