Javascript 如果条件vs循环一项
我只是好奇,是否值得在循环某个数组之前设置if条件,即90%将是1个项目的数组? 代码示例:Javascript 如果条件vs循环一项,javascript,loops,if-statement,optimization,Javascript,Loops,If Statement,Optimization,我只是好奇,是否值得在循环某个数组之前设置if条件,即90%将是1个项目的数组? 代码示例: const a = [3]; const aLength = a.length; if(aLength > 1) { for(let i = 0; i < aLength; i++) { func(i); } } else { func(); } function func(position = 0) { console.log('hi' +
const a = [3];
const aLength = a.length;
if(aLength > 1) {
for(let i = 0; i < aLength; i++) {
func(i);
}
} else {
func();
}
function func(position = 0) {
console.log('hi' + position);
}
const a=[3];
常数长度=a.长度;
如果(长度>1){
for(设i=0;i
编写干净的代码,让每个人都开心
您可以消除if和循环:
const a=[5,6,3]
a、 forEach((值,索引)=>console.log('hi'+index))代码>我同意Federico的评论,在这种情况下,单个for循环是最可读的
此外,即使您重用了它,将a.length提取为aLength也没有多大意义
const a = [3];
for(let i = 0; i < a.length; i++) {
func(i);
}
function func(position) {
console.log('hi' + position);
}
更重要的是,代码反映了您的意图。不要担心微小的性能问题。@Pointy我也对坏/好的代码实践感兴趣,也许这是禁止的或专有技术,我只是想知道。在这种情况下,我认为不区分这两种情况更具可读性。1元素数组不是特例(即,如果您不强制它看起来像特例,它的行为将完全相同),并且它的行为与更大的数组没有区别。删除if-else将使代码更短、更可读、更高效。为什么map
而不是forEach
?是的,对于这个例子,forEach更好。
const a = [3];
if(a.length > 1) {
handleMultiple(a);
} else {
handleSingleAndWhyItIsASpecialCase(a)
}
handleMultiple(array) {
for(let i = 0; i < array.length; i++) {
func(i);
}
}
handleSingleAndWhyItIsASpecialCase(array) {
func();
}
function func(position = 0) {
console.log('hi' + position);
}