Javascript 使用键将数组转换为对象

Javascript 使用键将数组转换为对象,javascript,arrays,spread-syntax,Javascript,Arrays,Spread Syntax,我有一个目标 { ids: ['11', '12', '13', '14'], cat: 1 } 我想把这个转换成 [ { id: '11', cat: 1 }, { id: '12', cat: 1 }, { id: '13', cat: 1 }, { id: '14', cat: 1 } ] 是否可以使用这种单一语法?我们可以使用扩展语法吗?如果带有对象的数组再次调用getCartesian并构建新对象,则可以使用递归函数分离所有键/值对,

我有一个目标

{
    ids: ['11', '12', '13', '14'],
    cat: 1
}
我想把这个转换成

[
    { id: '11', cat: 1 },
    { id: '12', cat: 1 },
    { id: '13', cat: 1 },
    { id: '14', cat: 1 }
]

是否可以使用这种单一语法?我们可以使用扩展语法吗?

如果带有对象的数组再次调用
getCartesian
并构建新对象,则可以使用递归函数分离所有键/值对,并通过迭代值来构建新的笛卡尔积

这些键必须与结果集中后面的键具有相同的名称

函数getCartesian(对象){ 返回Object.entries(Object).reduce((r[k,v])=>{ var-temp=[]; r、 forEach(s=> (Array.isArray(v)?v:[v]).forEach(w=> (w&&typeof w==='object'?getCartesian(w):[w])。forEach(x=> 临时推送(对象赋值({},s,{[k]:x})) ) ) ); 返回温度; }, [{}]); } 变量数据={id:['11','12','13','14'],类别:1}; log(getCartesian(data))
.as控制台包装{max height:100%!important;top:0;}
嗯,它只是
ID
上的
映射

var obj={
识别码:['11','12','13','14'],
猫:1
};
console.log(对象ID.map((x)=>{
返回{
id:x,
猫:obj.cat
};

}));这不是JSON。
var test = {
  ids: ['11', '12', '13', '14'],
  cat: 1
}

// one line
test.ids.map(i => { return {id: i, cat: test.cat} } )