Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 循环Json,搜索相同的键结尾,删除键结尾并将其放入新对象中_Javascript_Node.js_Json - Fatal编程技术网

Javascript 循环Json,搜索相同的键结尾,删除键结尾并将其放入新对象中

Javascript 循环Json,搜索相同的键结尾,删除键结尾并将其放入新对象中,javascript,node.js,json,Javascript,Node.js,Json,我从数据库中得到了一个json。我想从这个json创建一个新对象。我想找到所有具有相同结尾的关键点,并将其放置到一个新对象。在我的数据库中的其他JSON中,键的结尾可以不同,甚至更多。我还想删除这个结尾。请看我的例子 这是我的json: { "QMSI1_EndingTwo": "Anaesthetist", "QMSI2_EndingTwo": "1899-12-30 15:36:57", "QMSI3_EndingTwo":

我从数据库中得到了一个
json
。我想从这个
json
创建一个新对象。我想找到所有具有相同结尾的关键点,并将其放置到一个新对象。在我的数据库中的其他JSON中,键的结尾可以不同,甚至更多。我还想删除这个结尾。请看我的例子

这是我的
json

   {
          "QMSI1_EndingTwo": "Anaesthetist",
          "QMSI2_EndingTwo": "1899-12-30  15:36:57",
          "QMSI3_EndingTwo": "1899-12-30 17:32:00",
          "QMSI4_EndingTwo": "note1",
          "QMSI5_EndingTwo": "ivf",
          "QMSI1_EndingOne": "Small culture bowl",
          "QMSI5_EndingOne": "lucas"
       }
我想要这个结果:

 [{
    "QMSI1": "Anaesthetist",
    "QMSI2": "1899-12-30  15:36:57",
    "QMSI3": "1899-12-30 17:32:00",
    "QMSI4": "note1",
    "QMSI5": "ivf"
  },
  {
    "QMSI1": "Small culture bowl",
    "QMSI5": "lucas"
  }]

使用
.reduce
将具有键的对象中的值分组为从分割键中获得的“起始值”,然后提取
对象。值

const数据={
QMSI1_EndingTwo:“麻醉师”,
QMSI2_EndingTwo:“1899-12-30 15:36:57”,
QMSI3_EndingTwo:“1899-12-30 17:32:00”,
QMSI4_EndingTwo:“注1”,
QMSI5_EndingTwo:“体外受精”,
QMSI1_EndingOne:“小文化碗”,
QMSI5_EndingOne:“卢卡斯”
};
const resultObj=Object.entries(data.reduce)(acc[key,value])=>{
常量[k,结束]=键拆分(“”);
acc[结束]=acc[结束]|{};
acc[结束][k]=值;
返回acc;
}, {});
const result=Object.values(resultObj.flat();

控制台日志(结果)你能告诉我们到目前为止你已经尝试了什么吗?我已经添加了结果,这看起来是一个很好的方法。有没有办法像我上面所说的那样得到它?结果看起来是这样的:[{QMSI1:'麻醉师'},{QMSI2:'1899-12-30 15:36:57'},{QMSI3:'1899-12-30 17:32:00'},{QMSI4:'note1'},{QMSI5:'ivf'},{QMSI1:'Small culture bowl,{QMSI5:'lucas}]但是我需要上面例子中的对象,很好的解决方案,它的工作原理和我需要的一样,thx很多@JosefHenn它是累加器的初始值,
reduce
将从这个值开始,在这种情况下,
{}
是一个空对象。很好,现在我得到了它,又是一个很好的答案!