小编BTE*_*EVC的帖子

Javascript:点表示法字符串到嵌套对象引用

我们尝试根据点表示法字符串设置嵌套对象值。

输入示例:

{
    "bowtime": [
       "30",
       " 1",
       " 3",
       " 20"
    ],
    "bowstate.levi.leviFlo.totalFloQuot": ".95",
    "bowstate.crem.cremQuot": "79" 
}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{
    "bowstate": {
       "levi": {
           "leviFlo": {
               "totalFloQuot": 0.95
           }
       },
       "crem": {
           "cremQuot": 79
       }
    },
    "bowtime": [
       "30",
       " 1",
       " 3",
       " 20"
    ],
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,代码运行良好,但看起来过于复杂,并且只允许 4 层嵌套。我们如何简化此代码,并使其适用于嵌套超过 4 层的引用:

const dayspace = {};
var keyArr = Object.keys(input);

for (key in keyArr) {
  if ( keyArr[key].indexOf('.') > -1 ) {
    var setArr = keyArr[key].split('.');
    dayspace[setArr[0]] = dayspace[setArr[0]] || …
Run Code Online (Sandbox Code Playgroud)

javascript object

2
推荐指数
1
解决办法
1132
查看次数

标签 统计

javascript ×1

object ×1