【问题标题】:How to covert string with separator to multidimensional array in jquery如何在jquery中将带分隔符的字符串转换为多维数组
【发布时间】:2021-11-17 04:52:07
【问题描述】:

以前可能已经问过类似的问题,但我没有找到。 我有这样的字符串:

  • grand-parent/parent/child
  • grand-parent/parent/child2.
  • grand-parent2/parent2/child3

我想在 jQuery 中填充一个多维对象来得到这个:

 var params = { 
      'grand-parent' : {
           'parent' : {
               'child' :  value,
               'child2' : value
            }
       },
       'grand-parent2' : {
           'parent2' : {
               'child3' :  value
            }
       }
  };

我的代码错误

var params = {}
// ... in loop 
var parentIds = currentObject.attr('data-parent-ids').split("/");
params = parentIds.map(function(e) {
                return e;
            });

//Output  [ 'grand-parent', 'parent' ] instead of { 'grand-parent' : { 'parent' : null } }

【问题讨论】:

    标签: jquery data-conversion


    【解决方案1】:

    终于找到了我的答案here

    var createNestedObject = (params, path, val) => {
            const keys = path.split('/');
            const lastKey = keys.pop();
            const lastObj = keys.reduce((params, key) =>
                    params[key] = params[key] || {},
                params);
            lastObj[lastKey] = val;
        };
    
    var currentValue = currentObject.val();
    // data-parent-ids === 'grand-parent/parent'
    var parentPath = currentObject.attr('data-parent-ids');
    // car add more
    // parentPath = parentPath + "/" + currentObject.attr('data-index');
    // parentPath =  parentPath + "/" + currentObject.attr('data-id');
    createNestedObject( params, parentPath, currentValue );
    

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 2016-02-09
      • 2012-05-10
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      相关资源
      最近更新 更多