美文网首页
对象扁平化

对象扁平化

作者: 85a77deca79c | 来源:发表于2021-11-22 19:08 被阅读0次

    flatten(obj) {

          var result = {};

          function recurse(src, prop) {

            var toString = Object.prototype.toString;

            if (toString.call(src) == "[object Object]") {

              var isEmpty = true;

              for (var p in src) {

                isEmpty = false;

                recurse(src[p], prop ? prop + "." + p : p);

              }

              if (isEmpty && prop) {

                result[prop] = {};

              }

            } else if (toString.call(src) == "[object Array]") {

              var len = src.length;

              if (len > 0) {

                src.forEach(function (item, index) {

                  recurse(item, prop ? prop + ".[" + index + "]" : index);

                });

              } else {

                result[prop] = [];

              }

            } else {

              result[prop] = src;

            }

          }

          recurse(obj, "");

          console.log(result, "423423");

          return result;

        },

    调用:

    this.flatten({

          a: {

            b: 1,

            c: 2,

            d: { e: 5 },

          },

          b: [1, 3, { a: 2, b: 3 }],

          c: 3,

        });

    相关文章

      网友评论

          本文标题:对象扁平化

          本文链接:https://www.haomeiwen.com/subject/mxgbtrtx.html