san.js源码解读之工具(util)篇——splitStr2Obj函数

一、 源码解析

/**
 * 将字符串逗号切分返回对象
 *
 * @param {string} source 源字符串
 * @return {Object}
 */
function splitStr2Obj(source) {
    var result = {};
    each( // 2
        source.split(','), // 1
        function (key) { // 3
            result[key] = key;
        }
    );
    return result;
}
  1. 把字符串通过 split 函数以 ‘,’ 方式进行分割为数组
    例如
    	'animate,animateMotion,animateTransform'.split(','); // 输出 ['animate', 'animateMotion', 'animateTransform']
    
  2. each 函数遍历 split 函数返回的数组
  3. 在函数中进行转换,向 result 对象中放入键值对,这里的键值都是key

最后返回对象

each 函数的解读可以看之前的文章:san.js源码解读之工具(util)篇——each函数

二、示例

let svgTags = splitStr2Obj(''
   // Animation elements
   + 'animate,animateMotion,animateTransform,'

   // Basic shapes
   + 'circle,ellipse,line,polygon,polyline,rect,'

   // Container elements
   + 'defs,g,marker,mask,missing-glyph,pattern,svg,symbol,'

   // Descriptive elements
   + 'desc,metadata,'

   // Font elements
   + 'font,font-face,'

   // Gradient elements
   + 'linearGradient,radialGradient,stop,'

   // Graphics elements
   + 'image,path,use,'

   // Text elements
   + 'glyph,textPath,text,tref,tspan,'

   // Others
   + 'clipPath,cursor,filter,foreignObject,view'
);

san.js源码解读之工具(util)篇——splitStr2Obj函数_第1张图片

你可能感兴趣的:(san.js,javascript,开发语言,ecmascript,san.js)