Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 从具有带点关键点的对象创建对象_Javascript_Typescript_Object - Fatal编程技术网

Javascript 从具有带点关键点的对象创建对象

Javascript 从具有带点关键点的对象创建对象,javascript,typescript,object,Javascript,Typescript,Object,我有一个输入,比如: { survey.SubObject 1.key1:为true, survey.subObject1.key2:其他, survey.subObject2.key3:[1,2], survey.SubObject 2.key4:错误, survey2.SubObject 3.key5:false, survey2.SubObject 3.key6:false } 我想把它转换成一个物体,比如: { 调查:{ 子对象1:{ 关键1:正确, 关键2:其他 }, 子对象2:{ 键

我有一个输入,比如:

{ survey.SubObject 1.key1:为true, survey.subObject1.key2:其他, survey.subObject2.key3:[1,2], survey.SubObject 2.key4:错误, survey2.SubObject 3.key5:false, survey2.SubObject 3.key6:false } 我想把它转换成一个物体,比如:

{ 调查:{ 子对象1:{ 关键1:正确, 关键2:其他 }, 子对象2:{ 键3:[1,2], 关键4:错误 } }, 调查2:{ 子对象3:{ 关键5:错误, 关键6:错误 } } } 现在,我可以严格地设置关键帧并设置For,但我不知道如何在以下情况下重新创建对象:

常数x={ survey.SubObject 1.key1:为true, survey.subObject1.key2:其他, survey.subObject2.key3:[1,2], survey.SubObject 2.key4:错误, survey2.SubObject 3.key5:false, survey2.SubObject 3.key6:false } 对于Object.ESX的常量[key,value]{ console.logkey console.logvalue; }
虽然不漂亮,但它很管用

基本上,使用reduce覆盖Object.entries并使用spead累积对象。。。接线员

常数x={ survey.SubObject 1.key1:为true, survey.subObject1.key2:其他, survey.subObject2.key3:[1,2], survey.SubObject 2.key4:错误, survey2.SubObject 3.key5:false, survey2.SubObject 3.key6:false } const result=Object.entriex.reduce acc,条目=>{ 常量[key1,key2,key3]=条目[0]。拆分'; 返回{ …acc, [key1]:{ …acc[key1], [key2]:{ …acc[key1]?acc[key1][key2]:{}, [按键3]:输入[1] } } }; },{};
console.logresult 我提供的最佳解决方案是使用,那么您可以:

const x = {
"survey.subObject1.key1": true,
"survey.subObject1.key2": "OTHER",
"survey.subObject2.key3": "[1,2]",
"survey.subObject2.key4": false,
"survey2.subObject3.key5": false,
"survey2.subObject3.key6": false
}
//transform to an object 
const y = dot.object(x)

//get back to dot structure
const z = dot.dot(x)

谢谢你的回答,这个解决方案的问题是我无法深入,或者我需要提供密钥的确切数目,我使用