当前位置 博文首页 > q1424966670的博客:js代码优化(不定时更新)
if (status === 'process' || status === 'wait' || status === 'fail') {
doSomething()
}
这种写法语义性、可读性都不太好。可以通过switch case
或includes
这种进行改造。
switch(status) {
case 'process':
case 'wait':
case 'fail':
doSomething()
}
const enum = ['process', 'wait', 'fail']
if (enum.includes(status)) {
doSomething()
}
var arr = [1, [2, [3, 4]]];
function flatten(arr) {
var result = [];
for (var i = 0, len = arr.length; i < len; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]));
} else {
result.push(arr[i]);
}
}
return result;
}
console.log(flatten(arr));
var arr = [1, [2, [3, 4]]];
function flatten(arr) {
return arr.reduce(function (prev, next) {
return prev.concat(Array.isArray(next) ? flatten(next) : next);
}, []);
}
console.log(flatten(arr));
如果你想在某个条件逻辑值为true时,执行某个函数,就像这样:
if (condition) {
dosomething()
}
这时,你可以这样子运用短路:
condition && dosomething()
//String.match(/\d+/g)
"共 140 条111".match(/\d+/g) //["140", "111"]
?
cs