我最推荐的转换方式是ES6的方式,既实现了功能我最推荐的转换方式是ES6的方式,既实现了功能
浏览:20 作者:213123123 分类:品牌新闻

我最推荐的转换方式是ES6的方式,既实现了功能,又做到了深拷贝:我最推荐的转换方式是ES6的方式,既实现了功能,又做到了深拷贝:我最推荐的转换方式是ES6的方式,既实现了功能,又做到了深拷贝:我最推荐的转换方式是ES6的方式,既实现了功能,又做到了深拷贝:我最推荐的转换方式是ES6的方式,既实现了功能,又做到了深拷贝:

开发时遇到一个问题,需要将对象中的空字段去除,实现下图的效果。



quill-editor quill-image-resize-module 富文本修改图片大小

先看效果图:

 

 倒腾了好久,终于倒腾出来了.呜呜呜呜

先说明,我用的是Vue-Cli 2.0


解决这个问题的方式并不难,但是如何用更合适的方式解决呢。



我最推荐的转换方式是ES6的方式,既实现了功能,又做到了深拷贝:



const params = Object.keys(data)

    .filter((key) => data[key] !== null && data[key] !== undefined)

    .reduce((acc, key) => ({ ...acc, [key]: data[key] }), {});


当然,也有常规的方式,需要设置一个新对象用于深拷贝:



const newObj = {};

  Object.keys(obj).forEach(function (k) {

    if (obj[k] && typeof obj[k] === "object") {

      newObj[k] = removeEmpty(obj[k]);

    } else if (obj[k] !== null || obj[k] !== undefined) {

      newObj[k] = obj[k];

    }

  });

  return newObj;


还有一种通过方式JSON.parse(),但是这种方式存在坑点,无法去除对象中值为null的字段:



JSON.parse(JSON.stringify(obj));

// 返回 {a: 'duo', b: 0, d: null}



作者:duopub

链接:https://www.jianshu.com/p/4d76644b0e42

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。