Javascript或Ramda按属性转换JSON
我正在我的项目中使用 是否可以转换以下JSON数组 从 到Javascript或Ramda按属性转换JSON,javascript,ramda.js,Javascript,Ramda.js,我正在我的项目中使用 是否可以转换以下JSON数组 从 到 请帮助对象不能使用同一个键具有多个属性,因此 {id:1,id:2}和{name:test,name:test2}无效。我假设您需要一个ID数组和一个名称数组: [[1, 2, 3], ['test', 'test2', 'test3']] 如果所有对象都具有相同的键顺序-即no{id:1,name:'test'}和{name:'test2',id:1},并且需要对象中的所有值,则可以将对象映射到它们的值,然后转置: const{p
请帮助对象不能使用同一个键具有多个属性,因此 {id:1,id:2}和{name:test,name:test2}无效。我假设您需要一个ID数组和一个名称数组:
[[1, 2, 3], ['test', 'test2', 'test3']]
如果所有对象都具有相同的键顺序-即no{id:1,name:'test'}和{name:'test2',id:1},并且需要对象中的所有值,则可以将对象映射到它们的值,然后转置:
const{pipe,map,value,transpose}=R;
常数fn=管道
mapvalues,
转置
;
const arr=[{id:1,name:test},{id:2,name:test2},{id:3,name:test3}];
const result=fnarr;
console.logresult;
正如Oridori指出的,您请求的输出是无效的。不过,我要做一个稍微不同的猜测,关于它的一个有效的有用变体,即我们想要这样的输出: { id:[1,2], 名称:['test1','test2'] } 在vanilla JS中,有一种简单的方法可以实现这一点: 常量提取=数据=>{ const keys=[…新设置数据.flatMap对象.keys] 返回Object.fromEntries keys.map k=>[k,data.map o=>o[k]] } const data=[{id:1,name:test},{id:2,name:test2}] 控制台日志 提取数据
不能在已设置密钥的集合上多次使用同一密钥;作为一个表达式,您的预期结果将产生一个由两个对象组成的数组,每个对象分别具有一个属性id和名称,分别具有值2和test2,因为结果中只保留具有相同名称的最后一个键。
[
{
"id": 1,
"id": 2,
},
{
"name": "test",
"name": "test2"
}
];
[[1, 2, 3], ['test', 'test2', 'test3']]