如何将两个json数组与object.assign结合

时间:2019-02-17 07:19:33

标签: javascript arrays object

我想结合这两个json数组:

mk = [ { sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,


 image:
     'http://185.94.99.69:9000/upload/ticket/image/5c6907da43cbef2d3ce4b653/1550387163125.png' } ]
ticket.msg = [ { sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    _id: 5c6907da43cbef2d3ce4b652,
    image: '' } ]

我已经使用Object.assign做到了:

 newMsg = Object.assign([], mk,ticket.msg)

但是这样做不正确。这就是结果:

[ { sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    _id: 5c6907da43cbef2d3ce4b652,
    image: '' } ]

我除外:

[ { sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    _id: 5c6907da43cbef2d3ce4b652,
    image: 'http://185.94.99.69:9000/upload/ticket/image/5c6907da43cbef2d3ce4b653/1550387163125.png' } ]

1 个答案:

答案 0 :(得分:0)

使用Object.assign()

var mk = [{
    sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    image: 'http://185.94.99.69:9000/upload/ticket/image/5c6907da43cbef2d3ce4b653/1550387163125.png'
  }]
  var ticket_msg = [{
    sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    _id: '5c6907da43cbef2d3ce4b652',
    image: ''
  }]
 var a=Object.assign({},ticket_msg[0],mk[0]);
 console.log(a)

您还可以使用点差运算符

var mk = [{
    sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    image: 'http://185.94.99.69:9000/upload/ticket/image/5c6907da43cbef2d3ce4b653/1550387163125.png'
  }]
  var ticket_msg = [{
    sender: 'supporter',
    title: 'test4567',
    description: 'test',
    time: 1550387162726,
    _id: '5c6907da43cbef2d3ce4b652',
    image: ''
  }]
 console.log([{...ticket_msg[0],...mk[0]}])