ES6不使用数组如何实现输出1-100且10的倍数输出Hello?
ES6 无数组实现方案
你原来的实现依赖了数组实例与Array.from数组API,要满足不使用数组的要求,直接用循环逻辑就能实现需求:
基础for循环实现(性能最优)
for (let i = 1; i <= 100; i++) { console.log(i % 10 === 0 ? 'Hello' : i); }
逻辑非常直观,直接遍历1到100的整数,判断当前值是否能被10整除,满足条件就输出Hello,否则输出原始数字,全程没有涉及任何数组相关的操作。
ES6 Generator 函数实现(可复用场景)
如果需要复用遍历计数的逻辑,可以用Generator函数实现,同样不会用到数组:
// 定义生成指定范围内整数的Generator函数 function* countGenerator(max) { let current = 1; while(current <= max) { yield current++; } } // 遍历生成的1-100序列输出结果 for (const num of countGenerator(100)) { console.log(num % 10 === 0 ? 'Hello' : num); }
两种实现都完全没有用到数组相关的API或实例,符合需求要求。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

