繁体   English   中英

如何在for循环上设置多个限制:javascript

[英]How to set more than one limit on for loop : javascript

我正在使用javascript数组,在这里我使用for循环来获取前三个结果。(没有.length限制)

尝试拥有类似的东西

for(let a=0;a<usss.length || a<3;a++)

简单

var users = ['s','g','h','i'];
for(let a=0;a<3;a++){//dont want to use a < users.length
   console.log(users[a]);
}

问题

var users2 = ['s','g'];
for(let a=0;a<3;a++){
  console.log(users2[a]);
}

顺带一提

var users2 = ['s','g'];
for(let a=0;a<users2.length;a++){
 if(a<3){
  console.log(users2[a]);
 }
}

真实问题

我如何避免在上一次声明的代码中使用额外的if()条件?

如果它是一个非常基本的问题,我很抱歉,我只是坚持下去。 任何帮助或信息将不胜感激。 谢谢你的时间。

这似乎可行:

 var users = ['s','g','h','i']; var users2 = ['s','g']; for(let a=0;(a<3 && a<users.length) ;a++){ console.log(users[a]); } for(let a=0;(a<3 && a<users2.length);a++){ console.log(users2[a]); } 

除非if某处使用if您将无法检查值的长度。

 var users = ['s','g','h','i']; // define the length value outside var length = users.length >= 3 ? 3 : users.length; for(let a=0; a < length; a++){ console.log(users[a]); } var users2 = ['s','g']; for(let a=0; a < length; a++){ console.log(users[a]); } // you can define it inside the for loop but it's not so nice for reading for(let a=0; a < (users.length >= 3 ? 3 : users.length); a++){ console.log(users[a]); } 

也许最好的办法是创建一个函数并将3作为maxLength参数传递

 var logMax = function(users, maxLength, info) { let length = users.length >= maxLength ? maxLength : users.length; for(let a=0; a < length; a++){ console.log(info, ' => ' + users[a]); } } var users = ['s','g','h','i']; logMax(users, 3, 'first'); logMax(['s','g'], 3, 'second'); 

您也可以使用Array.some()

注意:检查浏览器兼容性和/或使用polyfill

 [1, 2, 3, 4, 5, 6, 7].some((el, idx) => { console.log(el); return ++idx === 4; /* <-- return top 4 */ }); 

它非常简单,我认为您只需要遍历数组的长度即可。

 var users2 = ['s','g'];
for(let a=0;a<users2.length;a++){
  console.log(users2[a]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM