如何在循环遍历数字序列时不使用条件语句排除指定数值
无条件语句实现序列遍历排除指定值
需求说明
在1到10的倒序数字序列中排除数值6和9,替代原有使用
if条件判断的实现。
原有参考实现:
let text = ""; for (let i = 10; i > 0; i--) { if (i != 6 && i !=9) text += i + "<br>"; } document.getElementById("demo").innerHTML = text;
实现方案
核心思路是将排除规则封装为预设列表,利用逻辑短路特性或数组高阶函数省略显式if条件分支,两种实现均完全不使用条件语句,且可扩展性更强,调整排除值只需要修改排除列表即可。
方案1:保留原for循环结构,用逻辑短路实现
let text = ""; const excludeList = [6, 9]; for (let i = 10; i > 0; i--) { // 逻辑与短路:仅当i不在排除列表时才执行拼接逻辑 !excludeList.includes(i) && (text += i + "<br>"); } document.getElementById("demo").innerHTML = text;
方案2:数组高阶函数实现,代码更简洁
const excludeList = [6, 9]; // 直接生成倒序数组、过滤排除项后拼接为最终内容 const text = Array.from({length:10}, (_, k) => 10 - k) .filter(num => !excludeList.includes(num)) .join('<br>') + '<br>'; document.getElementById("demo").innerHTML = text;
内容的提问来源于stack exchange,提问作者Lorenz Hart
相关产品推荐
相关产品推荐

