Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript或Ramda按属性转换JSON_Javascript_Ramda.js - Fatal编程技术网

Javascript或Ramda按属性转换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

我正在我的项目中使用

是否可以转换以下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{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']]