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