js, ...展开符号,zipObject用法

问题遇到的现象和发生背景
result = {
  columns:['a','b','c'],
  data:[[1,2,3],[4,5,6]],
  index: ['X','Y']
}
用代码块功能插入代码,请勿粘贴截图
const data = {}
 
result.index.forEach((id, i) => {
   data[id] = {id,...zipObject(result.columns, result.data[i])}
})

这是什么写法,为什么可以 { id, ...zipObject() } ?

首先 ...这个是展开运算符 , zipObject(result.columns, result.data[i]) 的结果应该也是个数组 。{id,...zipObject(result.columns, result.data[i])} 就是合并这两个对象

https://es6.ruanyifeng.com/?search=Spread+syntax&x=0&y=0#docs/array#%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6

看下zipObject是怎么定义的, ...只是展开了zipObject的执行结果