推入数组的第一个对象

时间:2019-03-07 05:40:08

标签: javascript arrays

我想将一个对象的对象推入数组的第一个对象。 这是我的代码:

const titles = {
  name: 'Not 1',
  name2: 'Not 2',
};

const array = [{ type: 'type', titles: [] }];
let e;
for (const name in titles) {
  e = titles[name];
}
array.push({ name: e });

这是我得到的结果:

[
  { 
    "type": "type", 
    "titles": [] 
  }, 
  { "name": "Not 2" }
]

这是我想要的结果:

[
  { 
    "type": "type", 
    "titles": [
      { "name": "Not 1" },
      { "name": "Not 2" }
    ] 
  }
]

5 个答案:

答案 0 :(得分:1)

访问对象,并使用推推数组中的另一个对象

const titles = {
  name: 'Not 1',
  name2: 'Not 2',
};

const array = [{
  type: 'type',
  titles: []
}, {
  type: 'type',
  titles: []
}];
let e;
for (const name in titles) {
  e = titles[name];
  array.forEach(x => x.titles.push({
    name: e
  }))

}

console.log(array)

答案 1 :(得分:0)

只需选择正确的数组元素并将其推入其内部数组即可。

const titles = {
  name: 'Not 1',
  name2: 'Not 2',
};

const array = [{ type: 'type', titles: [] }];

Object.keys(titles).forEach((key) => {
    array[0].titles.push({name: titles[key]})

})

答案 2 :(得分:0)

您可以将push()个值仅添加到array[0].titles

const titles = {
  name: 'Not 1',
  name2: 'Not 2',
};

const array = [{ type: 'type', titles: [] }];
for (const name in titles) {
  array[0].titles.push(titles[name])
}
console.log(array);

答案 3 :(得分:0)

您可以将closeApplication()Object.entires结合使用以形成单独的对象标题的数组,然后将Array.from属性设置为与新数组相等:

titles

答案 4 :(得分:0)

如果要推送到一组项目。使用mapObject.entries

const titles = {
  name: 'Not 1',
  name2: 'Not 2',
};

const array = [{
  type: 'type',
  titles: []
}, {
  type: 'type2',
  titles: []
}];

// re-build the titles before insert
const newTitles = Object.entries(titles).map(([first, second]) => ({[first]: second}))

// Insert for an array of items
const rs = array.map(({titles, ...rest}) => ({...rest, titles: newTitles}))

console.log(rs)