js中是适配器模式

2019-10-21  本文已影响0人  阿凯_8b27

将类与类之间的数据进行转换
/**

* 将原对象浅拷贝为新对象, 将keyMap 指定的键修改为指定的新键名  ,默认保留原来键值

* @param {Object} obj - 原对象

* @param {Object} keyMap - 键键映射关系, 键为保留的键, 值为新键名  const keyMap = {

*                                                                   languageId: 'lang',

*                                                                   mediaTypeId: 'type',

*                                                               }

*  @param {Boolean} isSave - 是否保留非keyMap对象中其他键名

*  @return {Object} 新对象

*  @author zhoudk

*/

const transform = (obj, keyMap, isSave = true) => {

    Object.entries(obj).reduce((acc, [key, value]) => {

        const resultKey = keyMap[key];

        if (isSave) {

            resultKey ? (acc[resultKey] = value) : (acc[key] = value)

        } else {

            resultKey && (acc[resultKey] = value)

        }

        return acc;

    }, {})

}

上一篇 下一篇

猜你喜欢

热点阅读