首页 > 解决方案 > 需要将数组推送到对象

问题描述

我需要将数组推送到无法执行此任务的对象内的对象。我正在研究角度 6

这是一个例子。

 abc = { data: { name: '', version: '', type: '', ports: [], vm:[] } };

  let hostlist = ['1234.Vm', '5678.Vm', '6789.Vm'];
//Need to push hostlist data to adc.data.vm
this.adc.data.vm.push(hostlist);
//this output is array inside array
this.adc.data.vm.concat(hostlist);
// concat cont work gives empty array

我需要这种格式的输出

{ name: '', version: '', type: '', ports: [], vm:['1234.Vm', '5678.Vm', '6789.Vm'] }

标签: javascript

解决方案


您可以使用push扩展运算符或重新分配adc.data.vm结果concat因为concat返回一个新数组而不更改现有数组):

方法一:push() 使用扩展运算符

// method 1: push with spread operator
let adc = {
  data: {
    name: '',
    version: '',
    type: '',
    ports: [],
    vm: []
  }
};
let hostlist = ['1234.Vm', '5678.Vm', '6789.Vm'];

adc.data.vm.push(...hostlist);
console.log(adc);

方法2:重新赋值给concat的结果

let adc = {
  data: {
    name: '',
    version: '',
    type: '',
    ports: [],
    vm: []
  }
};
let hostlist = ['1234.Vm', '5678.Vm', '6789.Vm'];

adc.data.vm = adc.data.vm.concat(hostlist);
console.log(adc);


推荐阅读