Js优化条件判断语句
一、简单逻辑常用判断
1.
if(a为真){
a=a
}else{
a=b
}
可写成:a = a || b2.
if(a==b){
a=c
}else{
a=d
}
可写成:a = (a==b) ? c : d3.
fruit: 0 //0=苹果,1=梨子,2=桔子,3=柠檬,4=芒果...
var _f = ['苹果','梨子','桔子','柠檬','芒果'];
shuiguo = _f[fruit];
二、复杂逻辑判断
1. if..else if...else... 中的条件体应该总是按照从最大概率到最小概率排列,以保证理论速度最快
2. switch/case 条件数量较大的话,就建议选用
(1)
if (res.state === 'SUCCESS') {
//TODO
} else if (res.state === 'FAIL') {
//TODO
} else {
//TODO
}
改成:
switch (res.state) {
case 'SUCCESS':
//TODO
break;
case 'FAIL':
//TODO
break;
default :
//TODO
}
同样的条件语句可以写成
case 2:
case 3:
sendLog('fail')
jumpTo('FailPage')
break; 3.使用JSON优化
function getName(type) {
if (type === 'monkey') {
return 'monkey name';
} else if (type === 'cat') {
return 'cat name';
} else {
return 'dog name';
}
}
改成
function getName(type) {
var data = {
monkey: 'monkey name',
cat: 'cat name',
dog: 'dog name'
}
return data[type] ? data[type] : data['dog'];
}4.
getIcon(layer, obj) {
// 各图层图标,形成以layerid为key的字典,每一项是一个图标文件数组
const iconUrls = {
DQ_ZDZ: [
// 空气质量AQI等级
'DQ/l_00.png',
'DQ/l_01.png',
'DQ/l_02.png',
'DQ/l_03.png',
'DQ/l_04.png',
'DQ/l_05.png',
'DQ/l_06.png'
],
SZ_SK: [
// 水质水库等级
'SK/sk_I.png',
'SK/sk_I-II.png',
'SK/sk_I-II.png',
'SK/sk_III.png'
],
SZ_HL: [
// 水质河流等级
'HL/I-I.png',
'HL/I-II.png',
'HL/I-II.png',
'HL/III.png'
],
HCST: [
// 水质河流等级
'HCST/I-I.png',
'HCST/I-II.png'
],
QT: [
// 其他图标
'QT/hospital.png', // 医院
'QT/sz_rubbish.png', // 市政垃圾
'QT/xz_area.png', // 行政区域
'QT/zjsqy.png', // 重金属企业
'QT/zdwryqy.png', // 重点污染源企业
'QT/wsclc.png', // 污水处理厂
'QT/wxfwqy.png' // 危险废物企业
],
// [达标, 超标]
WRY_FS: [
'FS/polut_water_wsj.png',
'FS/polut_water_db.png',
'FS/polut_water_cb.png',
'FS/polut_water_wbz.png'
],
WRY_FQ_QT: [
'FQ/polution_air_wsj.png',
'FQ/polution_air_db.png',
'FQ/polution_air_cb.png',
'FQ/polution_air_wbz.png'
],
DQ_JC: [
'JC/jiangchen_wsj.png',
'JC/jiangchen_db.png',
'JC/jiangchen_cb.png'
],
DQ_JS: ['JS/water_wsj.png', 'JS/water_db.png', 'JS/water_cb.png'],
ZS_GNQ: ['ZS/gnqzs_wsj.png', 'ZS/gnqzs_db.png', 'ZS/gnqzs_cb.png'],
ZS_DLJT: ['ZS/jtzs_wsj.png', 'ZS/jtzs_db.png', 'ZS/jtzs_cb.png'],
ZS_QY: ['ZS/qyzs_wsj.png', 'ZS/qyzs_db.png', 'ZS/qyzs_cb.png'],
WRY_CJZS: [
'ZS/zswry_wsj.png',
'ZS/zswry_db.png',
'ZS/zswry_cb.png',
'ZS/zswry_wbz.png'
]
// TR: [], // !!!
// TR_SJ: ['ZS/qyzs_db.png'], // !!!
// TR_CLZ: ['ZS/qyzs_db.png'], // !!!
};
// 计算图标索引。
// var level = 0;
let level = 0;
if (obj.PJ) {
level = obj.PJ + 1;
}
// 空气、河流、水库需要计算质量等级,对应等级图标;
// if (['DQ_KQ', 'SZ_HL', 'SZ_SK'].indexOf(layer.id) >= 0) {
// level = obj.PJ;
// } else {
// // 其他的图标索引=是否超标
// // level = point.isPolluted;
// }
if (iconUrls[layer.id]) {
if (iconUrls[layer.id][level]) {
var iconUrl = '/static/images/lims/gis/' + iconUrls[layer.id][level];
} else {
console.log(layer.id, level);
}
} else {
iconUrl = '/static/images/lims/gis/QT/szzdz.png';
}
return L.icon({
iconUrl: getMd5FilePath(iconUrl),
iconSize: [33, 46],
iconAnchor: [17, 46]
});
},本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!