通常讨论都会将continue与break、return放一起讨论,本文就只讨论continue。
据说不建议使用continue,会有性能问题,但是continue是有其使用场景的。
比如上图,想便利取出其中的内容,单行注释与色值带注释单独保存,并且注释与色值名有关联相关性,方便再次组合保存成文件数据。
// 读取文件数据代码 略
function readFile(url){
// ...
};
// 读取文件数据
let fileData = readFile("text.txt");
// 以换行符\r\n进行字符串拆分,每一行成为一项
let fileArray = fileData.split('\r\n');
// 对数组进行遍历,去除空项
for(let i=0;i<fileArray.length;i++){
if(fileArray[i] === '' || fileArray[i] == null || typeof(fileArray[i])===undefined){
fileArray.splice(i,1);
i=i-1;
}
};
// 此时fileArray数组去除了空值,每一项注释 和 名称 注释夹杂在一起,再次遍历数组,进行归类
// 声明一个空数组,用来保存数据,保存的方式是:新建一个对象,单独行的注释作为下标,该注释下的色值名保存在对象内作为key,注释作为该key的值,如下:
[
'第一行':{
primaryColor:'主色'
},
'第二行':{
bgColor:'背景色'
}
]
// 保存成该格式,当遍历到单独行注释,单独处理,作为索引下标,然后continue跳过,处理下一项
let params=[];
// 临时变量
let tempStr;
for(let i=0;i<fileArray.length;i++){
if(fileArray[i].substr(0,2) === '//'){
// 说明是单行注释 截取出内容
tempStr = fileArray[i].substr(2+1);
params[tempStr] = {};
// 处理完该项 continue跳过
continue;
};
if(fileArray[i].substr(0,2) === '--'){
let colorName = fileArray[i].substring(2,fileArray[i].indexOf('//')).replace(' ','');
let colorNameExplain = fileArray[i].substr(fileArray[i].indexOf('//')+1).replace(' ','');
params[tempStr][colorName] = colorNameExplain;
}
};
以上,可以按照大类注释进行分类,同时也保存了全部数据,并保持之间的关系,可以用于再次存数据使用,按照关联性进行保存。